paparazzo
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Ориентировать его нужным образом. | Так в этом и проблема. Исходные данные взяты из последовательного режима, это направляющие косинусы или про простому вектор. Углы поворота для непоследовательного режима неизвестны, т.е. я должен найти их, это графы Tilt about X, Tilt about Y, tilt about Z. Причем в последовательном фигурируют главные лучи, их косинусы, а не повороты объектов. Добавлено: Цитата: При такой постановке задачи, вектор как ни крути, он будет иметь координаты [0,0,1]. Подразумеваю, что координаты вектора имеются ввиду не в системе координат XYZ, а в некоей неподвижной системе координат, так? Добавлено: Попробую так: Дано: 1) неподвижная система координат (СК) (X0,Y0,Z0); 2) плоскость со связанной СК (X',Y',Z'): направление осей X' и Y' - произвольно, ось Z' имеет координаты [x0,y0,z0] в СК (X0,Y0,Z0); 3) плоскость последовательно поворачивается вокруг осей X', Y', Z' на соответствующие углы a,b,c ==> имеем координаты оси Z' в СК (X0,Y0,Z0), равные [l,m,n]. Найти: углы поворотов a,b,c. Задача такая? | Да, всё задается в исходной системе координат, координаты вектора так и есть в СК (X0, Y0, Z0). Просто вращение происходит хитрым образом, как описано выше. Я так понялсуть этого вращения из справки Zemax. Т.е. если взять например объект луч в непоследовательном, и задать все повороты по 45 градусов, то луч не будет по центру соответвующего квадранта. Т.е. по сути это доказывает такие хитрые повороты. Т.е. первый поворот есть поворот вокруг оси X0, но второй поворот вокруг оси Y1 которая повернута относительно X0, Z1 при этом есть повернутая Z0. Далее при вращении вокруг Y1 получаем ось Z2, последний поворот на угол c вокруг Z2 (Z2 это есть Z0 повернутая на углы a вокруг X0, и на b вокруг Y1). Как я понял вращение происходит согласно матрице поворота http://dic.academic.ru/dic.nsf/ruwiki/1028815 |