dimitriy7
![](http://forum.ru-board.com/board/avatars/private/dimitriy7.gif)
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Матрица переноса относительно XY на угол 30: | Ты это чего делаешь???!!! Все эти матрицы поворотов, переносов и т.п. - это есть матрица Po в твоём исходнике! Зачем ты матрицу T коверкаешь-то?! Объясняю ещё раз: 1) Матрицу T ты задаёшь 1 раз и больше её НЕ ТРОГАЕШЬ! - её элементы - начальные координаты твоей фигуры. (T[i].x, T[i].y, T[i].z - координаты i-й точки, T[i].p всегда = 1) 2) Матрицу Mu ты задаёшь 1 раз, всегда вот так: Код: Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[0,3]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[1,3]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; Mu[2,3]:=1; Mu[3,0]:=0; Mu[3,1]:=0; Mu[3,2]:=0; Mu[3,3]:=1; | или для 2-D так: Код: Mu[0,0]:=1; Mu[0,1]:=0; Mu[0,2]:=0; Mu[1,0]:=0; Mu[1,1]:=1; Mu[1,2]:=0; Mu[2,0]:=0; Mu[2,1]:=0; Mu[2,2]:=1; | причём так задавать её надо заново, ТОЛЬКО если хочешь вернуть фигуру в исходное положение. 3) Матрица Po - как раз и есть оператор трансформации, вот в ней и должны быть все синусы-косинусы-лямбды-мю и т.п. 4) В ЦИКЛЕ ДЕЛАЕМ 2 ВЕЩИ: 4.1) Mnozhim(Mu,Po,Mu); - т.е. применяем оператор трансформации без отображения результатов на экране. 4.2) Line3D(Mu,T[i],T[j]); (ну или Line2D) - собственно перерисовываем фигуру. Добавлено: ПС Это всё в терминах твоего самого первого исходника... |