Форум: "Игры";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизВопрос к математикам Найти похожие ветки
← →
Denton (2003-02-22 13:05) [0]У меня есть плоскость, определьонная тремя точками, сдвинута и повернута относительно начала координат. И есть модель (танка, машины), как ее сдвинуть и повернуть, чтобы она лежала на этой плоскасти. Я пробовал вычислять углы между плоскостями и с помощью glRotate поворачивать, но чьото криво получалось и может есть способ по быстрей (с матрицами поколдовать, я в етом не разбираюсь)?
← →
Ketmar (2003-02-22 13:18) [1]хинт: нормали.
Satanas Nobiscum! 22-Feb-XXXVIII A.S.
← →
Denton (2003-02-22 16:02) [2]А какая разница между чем вычислять угол, между нормаллю или плоскостю?
← →
Ketmar (2003-02-22 16:33) [3]читать учебники, ы?
Satanas Nobiscum! 22-Feb-XXXVIII A.S.
← →
Landgraph (2003-02-22 17:59) [4]А в какой-нибудь матрице хранится: местоположение? Если да, то в какой и с какими индексами =)
← →
Denton (2003-02-22 19:10) [5]
> Ketmar © (22.02.03 16:33)
Конкретней выражатся можно?
← →
i-C3H7OH (2003-02-24 01:10) [6]типичная задача преобразований координат умножением на матрицу
азы качать отсюда
http://pascal.sources.ru/docs/compgraf.zip
2 Landgraph
тебе тоже будет полезно как раз насчет матриц
← →
Denton (2003-02-25 13:06) [7]Блин, ну нехрена не выходит: нужно повернуть модель чтобы она была паралельна плоскости (АВС), помогите пожалуста кому не лень.
var a,b,c,n:Vector;
( a,b,c)Блин, ну нехрена не выходит: нужно повернуть модель чтобы она была паралельна плоскости (АВС), помогите пожалуста кому не лень.
var a,b,c,n:Vector;
anx,any:single;
begin
...
n:=NormalVector(a,b,c);
n:=NormalizeVector(n);
anx:=radtodeg(arccos((n.x+n.z)/(2*(n.x*n.x+n.y*n.y+n.z*n.z))));
any:=radtodeg(arccos((n.z)/(n.x*n.x+n.y*n.y+n.z*n.z)));
glTranslate(Position.x,Position.y,Position.z);
glRotate(angle,0,1,0);
glRotate(anx,1,0,0);
glRotate(any,0,0,1);
model.Draw;
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c