|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Eugene Goncharuk 2:5045/27.51 03 Aug 2002 22:04:26 To : Victor A. Pavlov Subject : Повоpот в 3d -------------------------------------------------------------------------------- Мои бортовые системы запеленговали, что в Пятница Август 02 2002 11:25, Victor A. Pavlov писал Victor A. Pavlov: VAP>> произвольлной прямой. Имеется более быстрый (и более простой) VAP>> метод поворота точки на произвольный угол вокруг произвольной VAP>> прямой в постранстве. VP> Приношу извинения за опечатки. Правильный алгоритм выглядит так: VP> Hачальные данные: _ VP> Точка задается радиус-вектором p=(px,py,pz). VP> Угол задается числом phi (в радианах). VP> _ VP> Прямая (ось) задается, двумя векторами: радиус-вектором точки на VP> прямой s = VP> _ _ (sx,sy,sz) и вектором VP> направления n=(nx,ny,nz), |n|=1. VP> _ _ _ _ _ _ VP> 1. s := s+n*(n&(p-s)); _ _ VP> операция & - скалярное произведение векторов: a&b=ax*bx+ay*by+az*bz VP> ___ _ _ VP> 2. tmp := p-s; VP> _ ___ ___ _ _ VP> 3. p' := tmp*cos(phi)+(tmp^n)*sin(phi)+s; _ _ VP> операция ^ - векторное произведение векторов: VP> a^b=(ay*bz-az*by,az*bx-ax*bz, ax*by-ay*bx) VP> _ VP> Точка p' - и есть результуриющая точка. Это всё конечно весело. Hо как наиболее красиво, быстро и грамотно реализовать поворот камеры в 3D аля Descent (игрушка такая есть) ? C уважением, Eugene Goncharuk. --- УТВЕРЖДАЮ. MSG-редактор капитан 2.5 ранга Голд Дедович фор ДОС UNREG * Origin: Hу усе... Рэгламент! (2:5045/27.51) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/223403d4c53ee.html, оценка из 5, голосов 10
|