Camera
Módulo: digi21.base
Representa una cámara: su posición, sus rotaciones y su proyección (cónica u
ortográfica). Incluye la parte matemática del manejo de la cámara, independiente de
OpenGL, por lo que se puede usar en guiones sin una ventana de dibujo.
Constructores
Camera(name)
Camera(name, position, angle_x, angle_y, angle_z)
| Argumento |
Tipo |
Descripción |
name |
str |
Nombre de la cámara. |
position |
tuple |
Posición (x, y, z). |
angle_x, angle_y, angle_z |
float |
Los tres ángulos de rotación. |
Propiedades
| Propiedad |
Tipo |
L/E |
Descripción |
name |
str |
L/E |
Nombre de la cámara. |
position |
tuple |
L/E |
Posición (x, y, z). |
roll |
float |
L/E |
Rotación roll. |
pitch |
float |
L/E |
Rotación pitch. |
yaw |
float |
L/E |
Rotación yaw. |
rotations |
tuple |
L/E |
Rotaciones (roll, pitch, yaw). |
up |
tuple |
L |
Vector "arriba" (x, y, z), derivado de las rotaciones. |
look |
tuple |
L |
Vector "mirada" (x, y, z), derivado de las rotaciones. |
right |
tuple |
L |
Vector "derecha" (x, y, z), derivado de las rotaciones. |
camera_matrix |
tuple |
L |
Matriz 3x3 de la cámara (filas: right, up, look). |
conic |
bool |
L |
True si la cámara es cónica; False si es ortográfica. |
fov |
float |
L/E |
Campo de visión (cámara cónica). |
z_near |
float |
L/E |
Plano cercano (cámara cónica). |
z_far |
float |
L/E |
Plano lejano (cámara cónica). |
frustum_dimensions |
tuple |
L/E |
Dimensiones del frustum ortográfico (ancho, alto, profundidad). |
standard_view_type |
StandardViewpoint |
L |
Punto de vista estándar al que corresponden las rotaciones actuales. |
Métodos
| Método |
Descripción |
set_conic(fov, z_near, z_far) |
Configura la cámara como cónica. |
set_orthographic(min, max) |
Configura la cámara como ortográfica a partir de la caja del terreno (min, max). |
set_standard_viewpoint_position(viewpoint, min, max) |
Sitúa la cámara en la posición del punto de vista estándar para la caja (min, max). |
rotate_standard(viewpoint) |
Rota la cámara al punto de vista estándar indicado. |
world_to_camera(world) |
Transforma un punto del mundo a coordenadas de cámara (no necesita contexto OpenGL). |
camera_to_world(camera) |
Transforma un punto en coordenadas de cámara al mundo (no necesita contexto OpenGL). |
Ejemplo
from digi21.base import Camera, StandardViewpoint
camara = Camera("vista cenital")
camara.set_orthographic((0, 0, 0), (1000, 1000, 200))
camara.rotate_standard(StandardViewpoint.Top)
print(camara.world_to_camera((500, 500, 100)))
Véase también