SDK Multiplataforma en C logo

SDK Multiplataforma en C

Geom2D

❮ Anterior
Siguiente ❯

Tipos y Constantes

structV2D
structS2D
structR2D
structT2D
structSeg2D
structCir2D
structBox2D
structOBB2D
structTri2D
structPol2D
structCol2D

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++.

Árbol de dependencias de la librería geom2d.
Figura 1: Dependencias de geom2d. Ver NAppGUI API.

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).

Sistema de referencia del monitor y sistema de referencia cartesiano.
Figura 2: Interpretación de la coordenada (3,2) en monitores (izquierda) y en el plano cartesiano (derecha).
Ejes de coordenadas en en plano, con diferentes orientaciones.
Figura 3: Diferentes sistemas de coordenadas en 2D.

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;
❮ Anterior
Siguiente ❯