Segmentos 2D
Funciones
Seg2D | seg2d (...) |
Seg2D | seg2d_v (...) |
real | seg2d_length (...) |
real | seg2d_sqlength (...) |
V2D | seg2d_eval (...) |
real | seg2d_close_param (...) |
real | seg2d_point_sqdist (...) |
real | seg2d_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.
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 |
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 |
t2 | Parámetro más cercano en |
Retorna
Cuadrado de la distancia.