Повоpот в 3d
- From
- Victor A. Pavlov (2:5025/81)
- To
- Victor A. Pavlov
- Date
- 2002-08-02T11:25:02Z
- Area
- RU.ALGORITHMS
Доброго здоровья, Victor!
Как то раз (Сpд Июл 31 2002 09:58) Victor A. Pavlov написал письмо Oleg Sysoev:
VAP> произвольлной прямой. Имеется более быстрый (и более простой) метод
VAP> поворота точки на произвольный угол вокруг произвольной прямой в
VAP> постранстве.
Приношу извинения за опечатки. Правильный алгоритм выглядит так:
Начальные данные: _
Точка задается радиус-вектором p=(px,py,pz).
Угол задается числом phi (в радианах). _
Прямая (ось) задается, двумя векторами: радиус-вектором точки на прямой s =
_ _ (sx,sy,sz) и вектором
направления n=(nx,ny,nz), |n|=1.
_ _ _ _ _ _
1. s := s+n*(n&(p-s)); _ _
операция & - скалярное произведение векторов: a&b=ax*bx+ay*by+az*bz
___ _ _
2. tmp := p-s;
_ ___ ___ _ _
3. p' := tmp*cos(phi)+(tmp^n)*sin(phi)+s; _ _
операция ^ - векторное произведение векторов: a^b=(ay*bz-az*by,az*bx-ax*bz,
ax*by-ay*bx)
_
Точка p' - и есть результуриющая точка.
Всего хорошего - Victor
--- GoldED/W32 3.0.1
* Origin: Red Station, Voronezh, Russia (2:5025/81)