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.