Как получить равноудалённую точку на другом векторе?

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

Как получить равноудалённую точку на другом векторе?

Сообщение NOVA 24 фев 2017, 14:38

Это точно последний вопрос.
Имеется:
public GameObject Aim; Цель
private float AimDistance; Расстояние до цели
Потом Собственно сам объект на котором висит скрипт.

Void Update
AimDistance = Vector3.Distance(AimTarget.transform.position, transform.position);

Как получить точку на векторе transform.forward на расстоянии AimDistance от объекта, на котором висит скрипт?
Вот так можно получить точку на векторе.
Vector3 tpoint = transform.position + transform.forward * n;
Проблема в том, что n!= AimDistance и точка уходит на другое расстояние. В моём случае кратное примерно 10.


PS. Где я видел десятку? А точно в настройках импорта модели. Scalefactor=10. Значит Vector3 tpoint = transform.position + transform.forward *AimDistance/Scalefactor;

Это правильное решение? Мне надо не только для одной модели.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Как получить равноудалённую точку на другом векторе?

Сообщение simmetr 24 фев 2017, 15:37

Если я правильно понял, то тебе надо юзать магнитуду (длину вектора) - дас из один из членов Vector3. Пусть n= нужный тебе вектор.magnitude
simmetr
UNец
 
Сообщения: 17
Зарегистрирован: 24 фев 2017, 13:19

Re: Как получить равноудалённую точку на другом векторе?

Сообщение NOVA 24 фев 2017, 15:49

simmetr писал(а):Если я правильно понял, то тебе надо юзать магнитуду (длину вектора) - дас из один из членов Vector3. Пусть n= нужный тебе вектор.magnitude

Ой а как это пользовать? Толи я уже не соображаю, в описании примеров нет.
Получается надо получить магнитуду исходного вектора и каким-то образом применить к другому.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Как получить равноудалённую точку на другом векторе?

Сообщение simmetr 24 фев 2017, 16:35

Vector3 vec_1 = new Vector3( 10f, 4f, 33f);
float n = vec_1.magnitude;
Vector3 vec_2 = vec_1 * n;

где: vec_1 - исходный вектор
n - магнитуда, она же длина вектора
vec_2 - его x y ...... ну ладно путь z - координаты точки, лежащей с кем то на удалении n, от vec_1 в направлении vec_1.
simmetr
UNец
 
Сообщения: 17
Зарегистрирован: 24 фев 2017, 13:19

Re: Как получить равноудалённую точку на другом векторе?

Сообщение NOVA 24 фев 2017, 16:42

Спасибо!
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Как получить равноудалённую точку на другом векторе?

Сообщение NOVA 25 фев 2017, 12:39

Так. Начал ковырять.
Что обнаружил.
Vector3.Distance=Vector3.magnitude //Дистанция от объекта начала вектора до объекта на конце вектора равна магнитуде вектора.

Но при умножении другого вектора на магнитуду, длина получается совершенно другой. Потому что у другого вектора другая магнитуда. Что какбы очевидно.
Поэтому назревает новый вопрос. Как получить вектор типа.
Two.transform.position-One.transform.position c магнитудой равной единице? И получить точку на векторе удалённую на единицу.


Ура дошло.
Vector/Vector.magnitude*Another magnitude
Хвала богам спасибо форуму.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Как получить равноудалённую точку на другом векторе?

Сообщение Woolf 25 фев 2017, 13:56

Больше тем про вектора, ага..
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Как получить равноудалённую точку на другом векторе?

Сообщение NOVA 25 фев 2017, 15:38

Никогда не думал, что направить ствол поворотом позвонка спины окажется самым трудным занятием в моей жизни. Проблема уже 2 недели решается. Так до конца ещё и не решилась. Но почти то что надо. Как бы не оказалось так, что поворот материнского позвонка на полоборота окажется вообще адом.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Как получить равноудалённую точку на другом векторе?

Сообщение waruiyume 25 фев 2017, 18:07

Vector/Vector.magnitude = Vector.normalized
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как получить равноудалённую точку на другом векторе?

Сообщение NOVA 25 фев 2017, 18:40

waruiyume писал(а):Vector/Vector.magnitude = Vector.normalized

Да я уж понял. И перпендикулярные векторы все выровнял. Ну эти Vector3.cross. Но ещё где-то есть косяк.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia


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

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

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