Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.05;
Скачать: CL | DM;

Вниз

Вращение в 3D пространстве   Найти похожие ветки 

 
dcu ©   (2003-06-12 12:38) [0]

Помогите!!!!!
Мне надо повернуть точку по осям X Y Z .
Можете подсказать какие небудь функции ????????
Например:

function xRotate(x,y,z:integer; angle:integer): integer;
begin
...
end;
function yRotate ...
PLIZZ!!!!!!!!!!!!!!!!!!!!


 
com2003   (2003-06-12 14:50) [1]

Углы поворота меряют в радианах(real);
Лучше координаты сделать вещественными(для точности), так как при многократных поворотах будут сильные искажения.
Вообще для поворота используют матрицы,но можно и без них, хотя они более универсальны.

Обойдемся без матриц:
Type TPointz=record
x,y,z:real;
( var p:TPointz; dx:real) [1] Углы поворота меряют в радианах(real);
Лучше координаты сделать вещественными(для точности), так как при многократных поворотах будут сильные искажения.
Вообще для поворота используют матрицы,но можно и без них, хотя они более универсальны.

Обойдемся без матриц:
Type TPointz=record
x,y,z:real;
end;
...
Procedure xRotate(var p:TPointz; dx:real);
var p1:TPointz;
begin
p1:=p;
p.y:=cos(dx)*p1.y+sin(dx)*p1.z;
p.z:=cos(dx)*p1.z-sin(dx)*p1.y;
end;
...

Вокруг остальных осей:
Oy:
p.x:=cos(dy)*p1.x+sin(dy)*p1.z;
p.z:=cos(dy)*p1.x-sin(dy)*p1.z;
Oz:
p.x:=cos(dz)*p1.x+sin(dz)*p1.y;
p.y:=cos(dz)*p1.x-sin(dz)*p1.y;

dx, dy, dz - углы поворота.


 
Asteroid ©   (2003-06-12 15:53) [2]

Особенно мне нравится повернуть точку.


 
dcu ©   (2003-06-12 16:55) [3]

Спасибо !!!!! Всё понял . Ща буду пробовать !



Страницы: 1 вся ветка

Текущий архив: 2004.01.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.05 c
3-11830
Query
2003-12-08 09:41
2004.01.05
Как при открытии формы, в DBGride выделить не 0 поле


7-12186
MaG
2003-10-25 13:57
2004.01.05
Клавиатура


7-12173
Dima_dvp
2003-10-23 03:38
2004.01.05
Global HOOK без DLL.. Это как? Или вообще ни хук?


14-12117
k-man
2003-12-13 18:54
2004.01.05
Задачка


1-11877
SashaTihonov
2003-12-18 15:19
2004.01.05
Пржалуйста можно пример с TerminateProcess