Вниз
Скачать: CL | DM;

Как повернуть вектор к вектору на определённый процент?   Найти похожие ветки 

 
Матриц   (2008-03-15 06:56) [0]

То есть два вектора V1 и V2. Если 0%, то значит берём вектор V1, если 100%, то вектор V2. А если промежуточное значение, то плавный поворот вокруг начала координат от одного к другому.

Можно ли это сделать быстро, без вычислений синусов и косинусов?


 
TUser ©   (2008-03-15 07:21) [1]

длины векторов подправь и сложи

V1 := V1 * (100 - PROCENT) / V1_length
V2 := V2 * PROCENT / V2_length
Vres := V1 + V2

будет плавно (угол между V1 И Vres на отрезке 0..100 является непрерывной и всюду дифференцируемой функцией от PROCENT)

кстати, а чем тебя не устраивают синусы?


 
Матриц   (2008-03-15 07:29) [2]

Спасибо. :)


> кстати, а чем тебя не устраивают синусы?


Скоростью. А в вычислении длины надо извлекать корень. Тоже не слишком быстро.


 
TUser ©   (2008-03-15 07:35) [3]

Ну, процессоры сейчас быстрые. У меня реально работает код, который поворачивает произвольный вектор вокруг данной оси на заданный угол. Все сделано на векторной алгебре. Синусы там есть. На скорость не жалуюсь. Хотя тут все, конечно, от задачи зависит.

зы. Кодом сейчас не поделюсь.


 
Матриц   (2008-03-15 07:42) [4]

Всё равно спасибо. :)


 
TUser ©   (2008-03-15 07:51) [5]

в принципе, даже если не делить на длину, то все равно будет плавно

то есть условию соотвествует (в понимании [1])

хотя, боюсь, это уже совсем не то, что тебе надо


 
MBo ©   (2008-03-15 14:49) [6]

Возможно, заинтересует также SLERP  - сферическая линейная интерполяция, при которой промежуточный единичный вектор поворачивается по дуге большого круга сферы от начального положения к конечному.


 
Правильный_Вася   (2008-03-15 15:51) [7]

а я не понял, что значит повернуть на процент
процент чего - угла, длины, отношения?


 
MBo ©   (2008-03-15 16:18) [8]

>Правильный_Вася
Пример - машина входит в поворот, меняется направление и сбрасывается скорость. Промежуточные значения вектора скорости можно интерполировать.


 
Homa   (2008-03-21 06:00) [9]


> MBo ©   (15.03.08 14:49) [6]
>
> Возможно, заинтересует также SLERP  - сферическая линейная
> интерполяция, при которой промежуточный единичный вектор
> поворачивается по дуге большого круга сферы от начального
> положения к конечному.


А где взять этот SLERP ?


 
Homa   (2008-03-22 02:59) [10]

Господа! Кто добрый, поделитесь пожалуйста функцийе SLERP для матрицы?
Вещь нужная. А Гугль что-то ничего толкового не находит.


 
capkoh ©   (2008-03-22 13:08) [11]

Насколько я знаю, с матрицами в чистом виде уже мало кто работает. В основном, все используют кватернионы, которые гораздо удобнее. В крайнем случае, если нужна матрица, в конце всех операций преобразуют результирующий кватернион в матрицу.

Кватернионы и SLERP есть тут:
http://sacredsoftware.net/tutorials/Quaternions/Quaternions.xhtml
http://www.gamedev.ru/users/wat/articles/quaternions?page=2


 
Homa   (2008-03-23 05:32) [12]

А как кватерниону задать длину векторов?


 
Homa   (2008-03-25 07:52) [13]

Люди!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.008 c
2-1207687754
Riply
2008-04-09 00:49
2008.05.04
Выбор типа структуры для хранения данных и работы с ними.


15-1205936204
Игорь Шевченко
2008-03-19 17:16
2008.05.04
Новости CodeGear from Borland, 1-й квартал 2008 года


2-1207544713
Андрей
2008-04-07 09:05
2008.05.04
Процедура копирования папки с поддиректориями и файлами


2-1207717907
Layner
2008-04-09 09:11
2008.05.04
Помогите конвернтнуть UTF8 в Win1251


3-1196336626
Kostafey
2007-11-29 14:43
2008.05.04
Где лучше хранить данные сумм MS SQL Server 2005




   Наверх