Угол между векторами

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Угол между векторами

Сообщение kitakun 28 янв 2013, 19:47

Привет!
Почему:
Синтаксис:
Используется csharp
targetDir = MyTargetTransform.position - _tra.position;
forward = _tra.forward;
print(Mathf.Acos(Vector3.Dot(targetDir, forward)));

всегда возвращает значение NaN? Или как можно по другому определить с какой стороны находиться объект MyTargetTransform (т.е. слева от _tra или справа)?.
П.с. значение Vector3.Dot есть, cos и Acos равны NaN.
kitakun
UNIт
 
Сообщения: 64
Зарегистрирован: 25 июл 2011, 22:11
Откуда: Новосибирск

Re: Угол между векторами

Сообщение Medveckij 28 янв 2013, 20:10

kitakun писал(а):Привет!
Почему:
Синтаксис:
Используется csharp
targetDir = MyTargetTransform.position - _tra.position;
forward = _tra.forward;
print(Mathf.Acos(Vector3.Dot(targetDir, forward)));

всегда возвращает значение NaN? Или как можно по другому определить с какой стороны находиться объект MyTargetTransform (т.е. слева от _tra или справа)?.
П.с. значение Vector3.Dot есть, cos и Acos равны NaN.



Синтаксис:
Используется csharp

Vector3 targetDirection = (target.position - transform.position).normalized;
               
                Vector3 right = transform.TransformDirection(Vector3.right);
               
                float dot = Vector3.Dot(targetDirection, right);
               
               
                if(dot < 0) Debug.Log("left");
                if(dot > 0) Debug.Log("right");

 
Аватара пользователя
Medveckij
Адепт
 
Сообщения: 1014
Зарегистрирован: 10 ноя 2012, 15:44


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 34