Curvas de gráficos por computadora
En los gráficos por computadora, a menudo necesitamos dibujar diferentes tipos de objetos en la pantalla. Los objetos no son planos todo el tiempo y necesitamos dibujar curvas muchas veces para dibujar un objeto.
Tipos de curvas
Una curva es un conjunto de puntos infinitamente grande. Cada punto tiene dos vecinos, excepto los extremos. Las curvas se pueden clasificar ampliamente en tres categorías:explicit, implicit, y parametric curves.
Curvas implícitas
Las representaciones de curvas implícitas definen el conjunto de puntos en una curva mediante el empleo de un procedimiento que puede probar para ver si hay un punto en la curva. Por lo general, una curva implícita se define mediante una función implícita de la forma:
f (x, y) = 0
Puede representar curvas de varios valores (varios valores de y para un valor de x). Un ejemplo común es el círculo, cuya representación implícita es
x2 + y2 - R2 = 0
Curvas explícitas
Una función matemática y = f (x) se puede trazar como una curva. Tal función es la representación explícita de la curva. La representación explícita no es general, ya que no puede representar líneas verticales y también tiene un valor único. Para cada valor de x, la función normalmente calcula un único valor de y.
Curvas paramétricas
Las curvas que tienen forma paramétrica se denominan curvas paramétricas. Las representaciones de curvas explícitas e implícitas se pueden usar solo cuando se conoce la función. En la práctica se utilizan las curvas paramétricas. Una curva paramétrica bidimensional tiene la siguiente forma:
P (t) = f (t), g (t) o P (t) = x (t), y (t)
Las funciones fyg se convierten en las coordenadas (x, y) de cualquier punto de la curva, y los puntos se obtienen cuando el parámetro t se varía en un cierto intervalo [a, b], normalmente [0, 1].
Curvas de Bezier
La curva de Bezier es descubierta por el ingeniero francés Pierre Bézier. Estas curvas se pueden generar bajo el control de otros puntos. Las tangentes aproximadas mediante el uso de puntos de control se utilizan para generar la curva. La curva de Bezier se puede representar matemáticamente como:
$$ \ sum_ {k = 0} ^ {n} P_ {i} {B_ {i} ^ {n}} (t) $$
Donde $ p_ {i} $ es el conjunto de puntos y $ {B_ {i} ^ {n}} (t) $ representa los polinomios de Bernstein que están dados por -
$$ {B_ {i} ^ {n}} (t) = \ binom {n} {i} (1 - t) ^ {ni} t ^ {i} $$
Dónde n es el grado del polinomio, i es el índice, y t es la variable.
La curva de Bézier más simple es la línea recta desde el punto $ P_ {0} $ a $ P_ {1} $. Una curva de Bézier cuadrática está determinada por tres puntos de control. Una curva de Bézier cúbica está determinada por cuatro puntos de control.
Propiedades de las curvas de Bezier
Las curvas de Bézier tienen las siguientes propiedades:
Generalmente siguen la forma del polígono de control, que consiste en los segmentos que unen los puntos de control.
Siempre pasan por el primer y último punto de control.
Están contenidos en el casco convexo de los puntos de control que los definen.
El grado del polinomio que define el segmento de la curva es uno menos que el número de puntos del polígono definidor. Por lo tanto, para 4 puntos de control, el grado del polinomio es 3, es decir, polinomio cúbico.
Una curva de Bezier generalmente sigue la forma del polígono que la define.
La dirección del vector tangente en los puntos finales es la misma que la del vector determinado por el primer y último segmento.
La propiedad de casco convexo para una curva de Bezier asegura que el polinomio siga suavemente los puntos de control.
Ninguna línea recta interseca una curva de Bézier más veces de lo que interseca su polígono de control.
Son invariantes bajo una transformación afín.
Las curvas de Bézier exhiben un control global, lo que significa que mover un punto de control altera la forma de toda la curva.
Una curva de Bezier determinada se puede subdividir en un punto t = t0 en dos segmentos de Bezier que se unen en el punto correspondiente al valor del parámetro t = t0.
Curvas B-Spline
La curva de Bezier producida por la función de base de Bernstein tiene una flexibilidad limitada.
Primero, el número de vértices de polígono especificado fija el orden del polinomio resultante que define la curva.
La segunda característica limitante es que el valor de la función de combinación es distinto de cero para todos los valores de los parámetros en toda la curva.
La base B-spline contiene la base de Bernstein como caso especial. La base B-spline no es global.
Una curva B-spline se define como una combinación lineal de puntos de control Pi y la función básica B-spline $ N_ {i,} $ k (t) dada por
$ C (t) = \ sum_ {i = 0} ^ {n} P_ {i} N_ {i, k} (t), $ $ n \ geq k-1, $ $ t \: \ epsilon \: [ tk-1, tn + 1] $
Dónde,
{$ p_ {i} $: i = 0, 1, 2… .n} son los puntos de control
k es el orden de los segmentos polinomiales de la curva B-spline. El orden k significa que la curva está formada por segmentos polinomiales por partes de grado k - 1,
los $ N_ {i, k} (t) $ son las “funciones de combinación B-spline normalizadas”. Se describen por el orden ky por una secuencia no decreciente de números reales que normalmente se denomina "secuencia de nudos".
$$ {t_ {i}: i = 0, ... n + K} $$
Las funciones N i , k se describen a continuación:
$$ N_ {i, 1} (t) = \ left \ {\ begin {matrix} 1, & if \: u \: \ epsilon \: [t_ {i,} t_ {i + 1}) \\ 0 , & De lo contrario \ end {matriz} \ right. $$
y si k> 1,
$$ N_ {i, k} (t) = \ frac {t-t_ {i}} {t_ {i + k-1}} N_ {i, k-1} (t) + \ frac {t_ {i + k} -t} {t_ {i + k} - t_ {i + 1}} N_ {i + 1, k-1} (t) $$
y
$$ t \: \ epsilon \: [t_ {k-1}, t_ {n + 1}) $$
Propiedades de la curva B-spline
Las curvas B-spline tienen las siguientes propiedades:
La suma de las funciones básicas de B-spline para cualquier valor de parámetro es 1.
Cada función básica es positiva o cero para todos los valores de los parámetros.
Cada función base tiene precisamente un valor máximo, excepto k = 1.
El orden máximo de la curva es igual al número de vértices del polígono de definición.
El grado del polinomio B-spline es independiente del número de vértices del polígono de definición.
B-spline permite el control local sobre la superficie de la curva porque cada vértice afecta la forma de una curva solo en un rango de valores de parámetros donde su función base asociada es distinta de cero.
La curva exhibe la propiedad de disminución de la variación.
La curva generalmente sigue la forma de definir el polígono.
Cualquier transformación afín se puede aplicar a la curva aplicándola a los vértices del polígono de definición.
La línea curva dentro del casco convexo de su polígono definitorio.