Пово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)