SDK Multiplataforma en C logo

SDK Multiplataforma en C

Segmentos 2D

❮ Anterior
Siguiente ❯

Funciones

Seg2Dseg2d (...)
Seg2Dseg2d_v (...)
realseg2d_length (...)
realseg2d_sqlength (...)
V2Dseg2d_eval (...)
realseg2d_close_param (...)
realseg2d_point_sqdist (...)
realseg2d_sqdist (...)

Los segmentos son fragmentos de recta comprendidos entre dos puntos p0 y p1 (Figura 1). Son las primitivas geométricas más simples, después de los vectores. Definimos el parámetro t como la posición normalizada dentro del segmento. Valores entre 0 y 1 corresponderán a puntos internos del segmento, con los límites t=0 (p0) y t=1 (p1). Fuera de este rango tendremos los puntos externos al segmento, pero dentro de la recta que lo contiene. Por ejemplo t=2 sería el punto pasado p1 situado a una distancia igual a la longitud del segmento.

  • Utiliza seg2d_lengthf para obtener la longitud del segmento.
  • Utiliza seg2d_close_paramf para obtener el valor del parámetro más cercano a un punto determinado.
  • Utiliza seg2d_evalf para obtener el punto 2D a partir del parámetro.
  • Utiliza seg2d_sqdistf para obtener la distancia (al cuadrado) entre dos segmentos.
  • Dibujo de diferentes segmentos de recta en el plano.
    Figura 1: Segmentos en el plano.
❮ Anterior
Siguiente ❯

seg2d ()

Crea un segmento 2d a partir de sus componentes.

Seg2Df
seg2df(const real32_t x0,
       const real32_t y0,
       const real32_t x1,
       const real32_t y1);

Seg2Dd
seg2dd(const real64_t x0,
       const real64_t y0,
       const real64_t x1,
       const real64_t y1);

Seg2D
Seg2D(const real x0,
      const real y0,
      const real x1,
      const real y1);
x0

Coordenada x del primer punto.

y0

Coordenada y del primer punto.

x1

Coordenada x del segundo punto.

y1

Coordenada y del segundo punto.

Retorna

El segmento 2d.


seg2d_v ()

Crea un segmento 2d a partir de dos puntos.

Seg2Df
seg2d_vf(const V2Df *p0,
         const V2Df *p1);

Seg2Dd
seg2d_vd(const V2Dd *p0,
         const V2Dd *p1);

Seg2D
Seg2D::v(const V2D *p0,
         const V2D *p1);
p0

Primer punto.

p1

Segundo punto.

Retorna

El segmento 2d.


seg2d_length ()

Obtiene la longitud del segmento.

real32_t
seg2d_lengthf(const Seg2Df *seg);

real64_t
seg2d_lengthd(const Seg2Dd *seg);

real
Seg2D::length(const Seg2D *seg);
seg

Segmento.

Retorna

Longitud.


seg2d_sqlength ()

Obtiene el cuadrado de la longitud del segmento.

real32_t
seg2d_sqlengthf(const Seg2Df *seg);

real64_t
seg2d_sqlengthd(const Seg2Dd *seg);

real
Seg2D::sqlength(const Seg2D *seg);
seg

Segmento.

Retorna

Cuadrado de la longitud.

Observaciones

Evita calcular raíces cuadradas si solo nos interesa comparar medidas.


seg2d_eval ()

Obtiene el punto en el segmento según el parámetro.

V2Df
seg2d_evalf(const Seg2Df *seg,
            const real32_t t);

V2Dd
seg2d_evald(const Seg2Dd *seg,
            const real64_t t);

V2D
Seg2D::eval(const Seg2D *seg,
            const real t);
seg

Segmento.

t

Parámetro.

Retorna

Punto en el segmento (o en la recta que lo contiene).

Observaciones

Si t=0 devuelve p0. Si t=1 devuelve p1. Valores entre (0,1) puntos dentro del segmento. Otros valores, puntos en la recta que contiene al segmento.


seg2d_close_param ()

Obtiene el parámetro del segmento más cercano a un punto determinado.

real32_t
seg2d_close_paramf(const Seg2Df *seg,
                   const V2Df *pnt);

real64_t
seg2d_close_paramd(const Seg2Dd *seg,
                   const V2Dd *pnt);

real
Seg2D::close_param(const Seg2D *seg,
                   const V2D *pnt);
seg

Segmento.

pnt

Punto.

Retorna

Parámetro. Ver seg2d_evalf.


seg2d_point_sqdist ()

Obtiene la distancia al cuadrado de un punto al segmento.

real32_t
seg2d_point_sqdistf(const Seg2Df *seg,
                    const V2Df *pnt,
                    real32_t *t);

real64_t
seg2d_point_sqdistd(const Seg2Dd *seg,
                    const V2Dd *pnt,
                    real64_t *t);

real
Seg2D::point_sqdist(const Seg2D *seg,
                    const V2D *pnt,
                    real *t);
seg

Segmento.

pnt

Punto.

t

Parámetro en la recta que contiene al segmento. Ver seg2d_close_paramf. Puede ser NULL si no necesitamos este valor.

Retorna

Cuadrado de la distancia.


seg2d_sqdist ()

Obtiene la distancia al cuadrado entre dos segmentos.

real32_t
seg2d_sqdistf(const Seg2Df *seg1,
              const Seg2Df *seg2,
              real32_t *t1,
              real32_t *t2);

real64_t
seg2d_sqdistd(const Seg2Dd *seg1,
              const Seg2Dd *seg2,
              real64_t *t1,
              real64_t *t2);

real
Seg2D::sqdist(const Seg2D *seg1,
              const Seg2D *seg2,
              real *t1,
              real *t2);
seg1

Primer segmento.

seg2

Segundo segmento.

t1

Parámetro más cercano en seg1. Puede ser NULL si no necesitamos este valor.

t2

Parámetro más cercano en seg2. Puede ser NULL si no necesitamos este valor.

Retorna

Cuadrado de la distancia.

❮ Anterior
Siguiente ❯