Geom2D
Tipos y Constantes
struct | V2D |
struct | S2D |
struct | R2D |
struct | T2D |
struct | Seg2D |
struct | Cir2D |
struct | Box2D |
struct | OBB2D |
struct | Tri2D |
struct | Pol2D |
struct | Col2D |
Estamos ante una librería de cálculo geométrico en dos dimensiones. Geom2D permite trabajar con primitivas en el plano real: Puntos, vectores, transformaciones, curvas y superficies. Ofrece tan solo funcionalidad matemática, es decir, no define ningún tipo de representación ni operación de dibujado. Depende únicamente de la librería Core (Figura 1), por lo que puede utilizarse tanto en aplicaciones de escritorio como en utilidades por línea de comandos. Todos los tipos y funciones se definen en simple (float)
y double
precisión, además de poder hacer uso de las Plantillas matemáticas en C++.
Todos los elementos geométricos se basan en coordenadas (x, y) en el plano. Geom2D no asume como serán interpretadas dichas coordenadas. Eso dependerá del sistema de referencia definido por la aplicación. Los más utilizados son el cartesiano y el de pantalla (Figura 2), aunque podrían utilizarse otros sistemas llegado el caso (Figura 3).
struct V2D
Representa un vector o punto 2d. Vectores 2D.
struct V2Df { real32_t x; real32_t y; }; struct V2Dd { real64_t x; real64_t y; }; template<typename real> struct V2D { real x; real y; };
x | Coordenada x. |
y | Coordenada y. |
struct S2D
Representa un tamaño en 2d. Tamaños 2D.
struct S2Df { real32_t width; real32_t height; }; struct S2Dd { real64_t width; real64_t height; }; template<typename real> struct S2D { real width; real height; };
width | Ancho. |
height | Alto. |
struct R2D
Rectángulo en 2d. Rectángulos 2D.
struct R2Df { V2Df pos; S2Df size; }; struct R2Dd { V2Dd pos; S2Dd size; }; template<typename real> struct R2D { V2D pos; S2D size; };
pos | Origen. |
size | Tamaño. |
struct T2D
Transformación afín en 2d. Transformaciones 2D.
struct T2Df { V2Df i; V2Df j; V2Df p; }; struct T2Dd { V2Dd i; V2Dd j; V2Dd p; }; template<typename real> struct T2D { V2D i; V2D j; V2D p; };
i | Componente i de la transformación lineal. |
j | Componente j de la transformación lineal. |
p | Posición. |
struct Seg2D
Segmento de recta en 2d. Segmentos 2D.
struct Seg2Df { V2Df p0; V2Df p1; }; struct Seg2Dd { V2Dd p0; V2Dd p1; }; template<typename real> struct Seg2D { V2D p0; V2D p1; };
p0 | Coordenada del primer punto del segmento. |
p1 | Coordenada del segundo punto del segmento. |
struct Cir2D
Círculo en 2d. Círculos 2D.
struct Cir2Df { V2Df c; real32_t r; }; struct Cir2Dd { V2Dd c; real64_t r; }; template<typename real> struct Cir2D { V2D c; real r; };
c | Centro. |
r | Radio. |
struct Box2D
Bounding Box en 2d. Cajas 2D.
struct Box2Df { V2Df min; V2Df max; }; struct Box2Dd { V2Dd min; V2Dd max; }; template<typename real> struct Box2D { V2D min; V2D max; };
min | Coordenada mínima del bounding. |
max | Coordenada máxima del bounding. |
struct OBB2D
Caja (rectángulo) orientada en 2d. Cajas Orientadas 2D.
struct OBB2Df; struct OBB2Dd; template<typename real> struct OBB2D;
struct Tri2D
Triángulo 2d. Triángulos 2D.
struct Tri2Df { V2Df p0; V2Df p1; V2Df p2; }; struct Tri2Dd { V2Dd p0; V2Dd p1; V2Dd p2; }; template<typename real> struct Tri2D { V2D p0; V2D p1; V2D p2; };
p0 | Coordenada del primer punto del triángulo. |
p1 | Coordenada del segundo punto del triángulo. |
p2 | Coordenada del tercer punto del triángulo. |
struct Pol2D
Polígono convexo en 2d. Polígonos 2D.
struct Pol2Df; struct Pol2Dd; template<typename real> struct Pol2D;
struct Col2D
Datos de colisión en 2d. Colisiones 2D.
struct Col2Df; struct Col2Dd; template<typename real> struct Col2D;