Vous êtes sur la page 1sur 8

Java3D

Ubicando al observador dentro de la escena gráfica
Ubicando al observador al espacio.

Para conocer una ubica‐


ción o para fijar una ubi‐
cación, de un observador
(o una cámara),
cámara) se re‐
quiere saber de posicio‐
nes y de orientaciones.

Java3D requiere de coordenadas cartesianas X Y y Z. 


Java3D requiere de coordenadas cartesianas,  X, Y y Z
En general a muchas personas le es más fácil, ubicarse en coordenadas esfé‐
ricas y los valores de distancia,
ricas, distancia ángulo horizontal (azimut) y ángulo de
elevación son muchos más facil de manejar.
Ubicación & orientación
(x,y,z)
Ubicaciones y orientaciones diferentes.

X
φ
Z
Coordenadas esféricas adaptadas

z = r ⋅ cos(θ ) ⋅ cos(φ )
x = r ⋅ cos(θ ) ⋅ sin(φ )
y = r ⋅ sin(θ )
Puedo usar mi propio sistema
de referencia.

z = r ⋅ cos(θ ) ⋅ cos(φ )
Estas ecuaciones sirven de interface, entre el programador y java3D.
, p g yj
x = r ⋅ cos((θ ) ⋅ sin(
i (φ ) El programador trabaja, con coordenadas esféricas , para ubicar el punto de 
y = r ⋅ sin(θ ) vista, y con las ecuaciones de al lado, convertirlas y utilizar en coordenadas 
cartesianas esa misma ubicación.
Métodos lookAt() e invert de Transform3D

Para ubicar un punto de


vista y cambiarlo, usare‐
mos lookAt
l kA e invert.
i (x1 y1 z1)
(x1,y1,z1)

TransformGroup tg;

tg

t
g
(x2,y2,z2)

lookAT(Point3d ojo, Point3d objetoTarget, Vector3d up)
Transform3D t3d = new Transform3D();
t3d .lookAt(new Point3d(x1,y1,z1), new Point3d(x2,y2,z2),
new Vector3d(0.0,0.0,1.0));
d( ))
t3d.invert();
(x2,y2,z2)
tg.setTransform(t3d);
Ejemplo

Vous aimerez peut-être aussi