[врезка 28.11.09 01:26]
[/врезка 28.11.09 01:26]
- Код: Выделить всё
| / Zn + Yn^2/d -Xn*Yn*d Xn \ / r \ / r \ |
| | -Xn*Yn*d Zn + Xn^2/d Yn | * | 0 | - | 0 | |
| \ -Xn -Yn Zn / \ 0 / \ -h / |
(Это матрица 3X3) (вектор) (вектор)
И при этом: d = (1 - Zn) / (Xn^2 + Yn^2)
(Поясню: это модуль вектора, полученного в результате разности произведения 3x3-матрицы на 3-вектор и 3-вектора)
При этом:
- Xn = sin(P)*cos(A)
- Yn = sin(P)*sin(A)
- Zn = cos(P)
- 0 <= P < pi/2 (или -pi/2 < P < pi/2)
- A любое.
- h и r константные, h > r или даже h > 2.5*r
Задача: Сделать так, чтобы в выражении было как можно меньше операций. В идеале: представить его в виде U(P)*V(A)*K, где U и V -- функции от P и A, а K --- константный коэффициент, зависящий от константных h и r.
Хинты:
- Вместо r можно взять 1 (по сути, вынести r за знак модуля)
- Можно брать векторы {0; r; 0} и {0, r, -h}, если вам это чем-то поможет
- {Xn; Yn; Zn} --- единичный вектор
- Главная диагональ матрицы содержит Zn плюс кое-что делить на d. Где кое-что: квадрт Yn, квадрат Xn и ноль, остальные элементы матрицы симметричны относительно главной диагонали с учётом перемены знака (кроме элементов 1-2 и 2-1, которые идентичны)
P.S. После этого топика чешутся руки прикрутить к форуму рендерилку математических записей.