forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Математика (http://forum.boolean.name/forumdisplay.php?f=85)
-   -   Вектор -> |вектор|=1 (http://forum.boolean.name/showthread.php?t=6343)

ABTOMAT 07.09.2008 13:13

Вектор -> |вектор|=1
 
Имеется вектор vx#,vy#,vz#
Получен вычитанием координат следующего вейпойнта из координат предыдущего 8)
Но проблема: если расстояние между вейпойнтами неодинаковое то и длина вектора будет разная и соответственно камера будет лететь с разной скоростью.
Нада из этого вектора vx#,vy#,vz# получить вектор такой, что длина его будет равна единице, но направление он укажет то же самое, что и исходный. Короче, нада укоротить слишком длинный вектор и удлинить слишком короткий чтобы скорость была одинаковая.
З.Ы. Извините если вопрос тупой :rolleyes: но увы ттороплюсь нада к среде доделывать уже, дык башка не варит совсем от спешки
З.З.Ы. Мож сам дойду до ответа но всё равно хотелось бы услышать кто бы как сделал (ч/ж решения не предлагать)

jimon 07.09.2008 13:45

Ответ: Вектор -> |вектор|=1
 
называется это нормализацией вектора
Код:

DistSQ# = vx^2+vy^2+vz^2

if(DistSQ > 0) then
DistSQ = 1 / sqr(DistSQ)

vx = vx * DistSQ
vy = vy * DistSQ
vz = vz * DistSQ
endif


ABTOMAT 07.09.2008 13:53

Ответ: Вектор -> |вектор|=1
 
Спасиба, тепер буду знать.

dimanche13 07.09.2008 15:03

Ответ: Вектор -> |вектор|=1
 
Нормалтзованый вектор показывает только направление, но не расстояние. Обычный же вектор показывает расстояние и направление, но не расположение.

ABTOMAT 07.09.2008 15:58

Ответ: Вектор -> |вектор|=1
 
Дак это мне и надо было.
Только вот я не знал как называется :)
Это нас так здорово в школе учат (про нормализованный вектор не слышал ни слова)

impersonalis 07.09.2008 16:06

Ответ: Вектор -> |вектор|=1
 
дык-дык
понятие о норме вектора в роде в курсе линейной алгебры преподают - так что, не расстраивайся


Часовой пояс GMT +4, время: 17:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot