Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Поворот вектора.   Найти похожие ветки 

 
йцукен   (2004-12-20 19:47) [0]

Даны единичные вектора  a1(x1,y1,z1) и a2(x2,y2,z2)

Как повернуть вектор a1 в направление вектора a2 на угол  alpha?


 
MBo ©   (2004-12-21 08:05) [1]

P,Q - исходные точки
Fi- угол между векторами OP,OQ
t-параметр интерполяции

1. Получаем угол Fi между векторами OP и OQ через скалярное произведение.

2. Получаем единичный вектор u, лежащий на оси вращения - векторное произв.

3. Координаты точки с параметром t 0..1 на искомой дуге -
P*[M=Матрица вращения на угол Alpha=t*Fi вокруг оси, проходящей через O c направл. вектором u]

можешь также погуглить по SLERP - spherical linear interpolation
Я на такое выражение наткнулся:
slerp(t,P,Q) = [sin((1-t)*Fi)*P+sin(t*Fi)*Q]/sin(Fi)
однако в нем была ошибка - отсутствовало Q во втором слагаемом, так что до использования лучше досконально проверить

SLERP, кстати, несложно считается при кватернионном представлении.


 
Da Stranger   (2004-12-21 11:18) [2]

Если на GLScene, то используй функцию VectorAngleLerp(a1,a2,t) из VectorGeometry, где t - степень поворота. Если t=0, то полученный вектор будет совпадать с a1, если t=1, то с a2. Если 0<t<1, то он будет между ними.


 
йцукен   (2004-12-21 17:31) [3]

Всем большое спасибо.
Попробую разобраться.



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

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.059 c
1-1109834501
3443
2005-03-03 10:21
2005.03.20
Помощь начинающим


4-1107338363
Bil Bal Dur
2005-02-02 12:59
2005.03.20
Как запустить 1.txt в ворде?


3-1108552389
atruhin
2005-02-16 14:13
2005.03.20
Вопрос про репликацию данных


4-1107333667
ТехникПТО
2005-02-02 11:41
2005.03.20
Flash в Webbrowsere


14-1109698606
Nikolay(DW)
2005-03-01 20:36
2005.03.20
Поместить в орешник :)