Rotar un punto en 3D

Rx,Ry,Rz =Ángulo X,Y,Z

X,Y,Z=posición inicial del punto

NX,NY,NZ=posición final del punto

const

PIDiv180 = 0.017453292519943295769236907684886;



procedure Rotate(Rx, Ry, Rz: Double; x, y, z: Double; var Nx, Ny, Nz: Double);

var

TempX: Double;

TempY: Double;

TempZ: Double;

SinX: Double;

SinY: Double;

SinZ: Double;

CosX: Double;

CosY: Double;

CosZ: Double;

XRadAng: Double;

YRadAng: Double;

ZRadAng: Double;

begin

XRadAng := Rx * PIDiv180;

YRadAng := Ry * PIDiv180;

ZRadAng := Rz * PIDiv180;



SinX := Sin(XRadAng);

SinY := Sin(YRadAng);

SinZ := Sin(ZRadAng);



CosX := Cos(XRadAng);

CosY := Cos(YRadAng);

CosZ := Cos(ZRadAng);



Tempy := y * CosY - z * SinY;

Tempz := y * SinY + z * CosY;

Tempx := x * CosX - Tempz * SinX;



Nz := x * SinX + Tempz * CosX;

Nx := Tempx * CosZ - TempY * SinZ;

Ny := Tempx * SinZ + TempY * CosZ;

end;

(* End Of *)




LIBROS:









No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...