SDK Multiplataforma en C logo

SDK Multiplataforma en C

Dibujo de entidades Geom2D

❮ Anterior
Siguiente ❯

Funciones

voiddraw_v2d (...)
voiddraw_seg2d (...)
voiddraw_cir2d (...)
voiddraw_box2d (...)
voiddraw_obb2d (...)
voiddraw_tri2d (...)
voiddraw_pol2d (...)

En la sección anterior hemos visto las primitivas básicas para dibujar en 2D. No obstante, Draw2D dispone de funciones especializadas para los objetos de Geom2D. Estas nuevas funciones serían totalmente prescindibles, ya que podrías obtener el mismo resultado utilizando draw_rect, draw_polygon, etc. Se incluyen como un mero atajo, además de ofrecer una versión de las mismas basadas en Plantillas matemáticas, muy útiles al desarrollar algoritmos genéricos en C++. Las propiedades de línea y relleno serán las que estén vigentes en cada momento dentro del contexto, debido a: draw_line_color, draw_line_width, draw_fill_color, etc.

Un ejemplo completo del uso de entidades 2D lo tienes en Col2DHello (Figura 1). Además de dibujar, en esta aplicación se muestran otros conceptos referentes a gráficos y cálculo geométrico tales como:

  • Crear objetos 2D bajo demanda.
  • Interactividad Click+Drag.
  • Detección de colisiones.
  • Cálculo de áreas.
  • Triangulación de polígonos y descomposición en componentes convexas.
  • Cálculo del círculo óptimo que envuelve a un conjunto de puntos.
  • Cálculo de la caja orientada (OBB2Df) que mejor representa a un conjunto de puntos.
  • Cálculo de la envoltura convexa (Convex Hull).
  • Captura de una aplicación para manipular elementos geométricos en 2D.
    Figura 1: Aplicación Col2dHello, que ilustra como trabajar con geometría 2D.

draw_v2d ()

Dibuja un punto 2D.

void
draw_v2df(DCtx *ctx,
          const drawop_t op,
          const V2Df *v2d,
          const real32_t radius);

void
draw_v2dd(DCtx *ctx,
          const drawop_t op,
          const V2Dd *v2d,
          const real64_t radius);

void
Draw::v2d(DCtx *ctx,
          const drawop_t op,
          const V2D *v2d,
          const real radius);
ctx

Contexto de dibujo.

op

Operación de dibujo.

v2d

Punto.

radius

Radio.


draw_seg2d ()

Dibuja un segmento 2D.

void
draw_seg2df(DCtx *ctx,
            const Seg2Df *seg);

void
draw_seg2dd(DCtx *ctx,
            const Seg2Dd *seg);

void
Draw::seg2d(DCtx *ctx,
            const Seg2D *seg);
ctx

Contexto de dibujo.

seg

Segmento.


draw_cir2d ()

Dibuja un círculo 2D.

void
draw_cir2df(DCtx *ctx,
            const drawop_t op,
            const Cir2Df *cir);

void
draw_cir2dd(DCtx *ctx,
            const drawop_t op,
            const Cir2Dd *cir);

void
Draw::cir2d(DCtx *ctx,
            const drawop_t op,
            const Cir2D *cir);
ctx

Contexto de dibujo.

op

Operación de dibujo.

cir

Círculo.


draw_box2d ()

Dibuja una caja 2D.

void
draw_box2df(DCtx *ctx,
            const drawop_t op,
            const Box2Df *box);

void
draw_box2dd(DCtx *ctx,
            const drawop_t op,
            const Box2Dd *box);

void
Draw::box2d(DCtx *ctx,
            const drawop_t op,
            const Box2D *box);
ctx

Contexto de dibujo.

op

Operación de dibujo.

box

Caja alineada.


draw_obb2d ()

Dibuja una caja 2D orientada.

void
draw_obb2df(DCtx *ctx,
            const drawop_t op,
            const OBB2Df *obb);

void
draw_obb2dd(DCtx *ctx,
            const drawop_t op,
            const OBB2Dd *obb);

void
Draw::obb2d(DCtx *ctx,
            const drawop_t op,
            const OBB2D *obb);
ctx

Contexto de dibujo.

op

Operación de dibujo.

obb

Caja orientada.


draw_tri2d ()

Dibuja un triángulo 2D.

void
draw_tri2df(DCtx *ctx,
            const drawop_t op,
            const Tri2Df *tri);

void
draw_tri2dd(DCtx *ctx,
            const drawop_t op,
            const Tri2Dd *tri);

void
Draw::tri2d(DCtx *ctx,
            const drawop_t op,
            const Tri2D *tri);
ctx

Contexto de dibujo.

op

Operación de dibujo.

tri

Triángulo.


draw_pol2d ()

Dibuja un polígono 2D.

void
draw_pol2df(DCtx *ctx,
            const drawop_t op,
            const Pol2Df *pol);

void
draw_pol2dd(DCtx *ctx,
            const drawop_t op,
            const Pol2Dd *pol);

void
Draw::pol2d(DCtx *ctx,
            const drawop_t op,
            const Pol2D *pol);
ctx

Contexto de dibujo.

op

Operación de dibujo.

pol

Polígono.

❮ Anterior
Siguiente ❯