Curvas de computação gráfica
Na computação gráfica, muitas vezes precisamos desenhar diferentes tipos de objetos na tela. Os objetos não são planos o tempo todo e precisamos desenhar curvas muitas vezes para desenhar um objeto.
Tipos de curvas
Uma curva é um conjunto infinitamente grande de pontos. Cada ponto tem dois vizinhos, exceto pontos finais. As curvas podem ser amplamente classificadas em três categorias -explicit, implicit, e parametric curves.
Curvas implícitas
As representações de curvas implícitas definem o conjunto de pontos em uma curva, empregando um procedimento que pode testar para ver se um ponto está na curva. Normalmente, uma curva implícita é definida por uma função implícita da forma -
f (x, y) = 0
Pode representar curvas de vários valores (vários valores y para um valor x). Um exemplo comum é o círculo, cuja representação implícita é
x2 + y2 - R2 = 0
Curvas explícitas
Uma função matemática y = f (x) pode ser traçada como uma curva. Essa função é a representação explícita da curva. A representação explícita não é geral, pois não pode representar linhas verticais e também tem um valor único. Para cada valor de x, apenas um único valor de y é normalmente calculado pela função.
Curvas Paramétricas
As curvas com forma paramétrica são chamadas de curvas paramétricas. As representações de curvas explícitas e implícitas podem ser usadas apenas quando a função é conhecida. Na prática, as curvas paramétricas são usadas. Uma curva paramétrica bidimensional tem a seguinte forma -
P (t) = f (t), g (t) ou P (t) = x (t), y (t)
As funções feg tornam-se as coordenadas (x, y) de qualquer ponto da curva, e os pontos são obtidos quando o parâmetro t é variado em um determinado intervalo [a, b], normalmente [0, 1].
Curvas de Bézier
Curva de Bezier é descoberta pelo engenheiro francês Pierre Bézier. Essas curvas podem ser geradas sob o controle de outros pontos. Tangentes aproximadas usando pontos de controle são usadas para gerar curvas. A curva de Bezier pode ser representada matematicamente como -
$$ \ sum_ {k = 0} ^ {n} P_ {i} {B_ {i} ^ {n}} (t) $$
Onde $ p_ {i} $ é o conjunto de pontos e $ {B_ {i} ^ {n}} (t) $ representa os polinômios de Bernstein que são dados por -
$$ {B_ {i} ^ {n}} (t) = \ binom {n} {i} (1 - t) ^ {ni} t ^ {i} $$
Onde n é o grau polinomial, i é o índice, e t é a variável.
A curva de Bézier mais simples é a linha reta do ponto $ P_ {0} $ a $ P_ {1} $. Uma curva de Bezier quadrática é determinada por três pontos de controle. Uma curva de Bezier cúbica é determinada por quatro pontos de controle.
Propriedades das curvas de Bézier
As curvas de Bézier têm as seguintes propriedades -
Eles geralmente seguem a forma do polígono de controle, que consiste nos segmentos que unem os pontos de controle.
Eles sempre passam pelo primeiro e último pontos de controle.
Eles estão contidos no casco convexo de seus pontos de controle de definição.
O grau do polinômio que define o segmento da curva é um a menos que o número do ponto de definição do polígono. Portanto, para 4 pontos de controle, o grau do polinômio é 3, ou seja, polinômio cúbico.
Uma curva de Bézier geralmente segue a forma do polígono de definição.
A direção do vetor tangente nos pontos finais é a mesma do vetor determinado pelo primeiro e último segmento.
A propriedade do casco convexo de uma curva de Bézier garante que o polinômio siga suavemente os pontos de controle.
Nenhuma linha reta cruza uma curva de Bézier mais vezes do que seu polígono de controle.
Eles são invariáveis sob uma transformação afim.
As curvas de Bézier exibem controle global, o que significa que mover um ponto de controle altera a forma de toda a curva.
Uma dada curva de Bézier pode ser subdividida em um ponto t = t0 em dois segmentos de Bézier que se unem no ponto correspondente ao valor do parâmetro t = t0.
Curvas B-Spline
A curva de Bezier produzida pela função de base de Bernstein tem flexibilidade limitada.
Primeiro, o número de vértices poligonais especificados fixa a ordem do polinômio resultante que define a curva.
A segunda característica limitante é que o valor da função de combinação é diferente de zero para todos os valores de parâmetro em toda a curva.
A base B-spline contém a base de Bernstein como caso especial. A base B-spline não é global.
Uma curva B-spline é definida como uma combinação linear de pontos de controle Pi e função de base 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] $
Onde,
{$ p_ {i} $: i = 0, 1, 2… .n} são os pontos de controle
k é a ordem dos segmentos polinomiais da curva B-spline. Ordem k significa que a curva é composta por segmentos polinomiais por partes de grau k - 1,
os $ N_ {i, k} (t) $ são as “funções de combinação B-spline normalizadas”. Eles são descritos pela ordem k e por uma sequência não decrescente de números reais normalmente chamada de “sequência de nós”.
$$ {t_ {i}: i = 0, ... n + K} $$
As funções N i , k são descritas a seguir -
$$ N_ {i, 1} (t) = \ left \ {\ begin {matrix} 1, & if \: u \: \ epsilon \: [t_ {i,} t_ {i + 1}) \\ 0 , & Caso contrário, \ end {matriz} \ direita. $$
e se 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) $$
e
$$ t \: \ epsilon \: [t_ {k-1}, t_ {n + 1}) $$
Propriedades da curva B-spline
As curvas B-spline têm as seguintes propriedades -
A soma das funções de base B-spline para qualquer valor de parâmetro é 1.
Cada função de base é positiva ou zero para todos os valores de parâmetro.
Cada função de base tem exatamente um valor máximo, exceto para k = 1.
A ordem máxima da curva é igual ao número de vértices do polígono de definição.
O grau do polinômio B-spline é independente do número de vértices do polígono de definição.
O B-spline permite o controle local sobre a superfície da curva porque cada vértice afeta a forma de uma curva apenas em uma faixa de valores de parâmetro onde sua função de base associada é diferente de zero.
A curva exibe a propriedade de diminuição da variação.
A curva geralmente segue a forma de definição de polígono.
Qualquer transformação afim pode ser aplicada à curva aplicando-a aos vértices do polígono de definição.
A linha curva dentro do casco convexo de seu polígono de definição.