Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Trigonometria con scripts

Iniciado por Auronity, Octubre 24, 2017, 08:00:56 PM

Tema anterior - Siguiente tema
Alguien sabe si hay alguna manera de hacer que unity calcule un angulo de un triangulo imaginario formado por tres puntos dados. Es decir, teniendo un punto A, un punto B y un punto C, como calcular el angulo formado por AC y BC.
 
Saludos.

Con AC y BC ya puedes sacar dos vectores o direcciones, y a partir de estos calcular el angulo con https://docs.unity3d.com/ScriptReference/Vector2.Angle.html
 
Un saludo.

En google (Unity + Angle):
 
https://docs.unity3d.com/ScriptReference/Vector3.Angle.html
 
Lo mismo que dice @OldGuy pero bueno, caso general para tres coordenadas.
 
Si tus puntos A B o C son vector3 (idem para vector2) tus vectores serían:
 

Vector3 AC = C - A;
Vector3 BC = C - B;
float angle = Vector3.Angle(AC,BC);

 
No vás a tener valores retornados mayores a 180 (logicamente) ni signo negativo con esta función, si mide de AC a BC, y luego alrevés te dará un mismo valor. Si querés determinar el signo deberás realizar un producto vectorial, el resultado de un signo sera un vector S, y el resultado para otro signo sera un vector -S.

con atan2 tambien se puede.
 

Mathf.Atan2(longitudX, longitudZ);

 
con este ejemplo sacas el angulo Y.
 
para calcular las longitudes puedes hacer similar ha como ha hecho lightbug, restando los valores X e Y...

Etiquetas: