A base de Bernstein
Definição
Para i = 0, 1, …, n, o polinômio de Bernstein de índice i e grau n se escreve bi,n e é definido por
bi,n(t) = n!/(i! (n − i)!) · ti(1 − t)n−i.
O fator n!/(i! (n − i)!) é o número de combinações de n elementos tomados i a i. Os n + 1 polinômios b0,n, …, bn,n formam uma base do espaço dos polinômios de grau no máximo n, a base de Bernstein.
Por quê. Pelo binômio de Newton, b0,n(t) + ⋯ + bn,n(t) = ((1 − t) + t)n = 1. Da mesma forma, para cada k = 0, 1, …, n, multiplicar tk por ((1 − t) + t)n−k = 1 e expandir escreve tk como combinação linear de bk,n, …, bn,n. Como todo polinômio de grau no máximo n é combinação linear de 1, t, …, tn, os n + 1 polinômios de Bernstein geram esse espaço. O espaço tem dimensão n + 1, e n + 1 vetores que geram um espaço de dimensão n + 1 formam uma base (guia Base e dimensão).
Exemplo
Para n = 2, os polinômios de Bernstein são b0,2(t) = (1 − t)2, b1,2(t) = 2t(1 − t) e b2,2(t) = t2. Os polinômios 1, t e t2 são combinações lineares deles:
1 = b0,2 + b1,2 + b2,2,
t = (1/2)b1,2 + b2,2,
t2 = b2,2.
Por exemplo, (1/2)·2t(1 − t) + t2 = t. Logo o polinômio p(t) = t tem coordenadas (0, 1/2, 1)T na base de Bernstein de grau 2 e (0, 1, 0)T na base 1, t, t2.
Curvas de Bézier
Os pontos do plano formam o plano euclidiano. Um ponto se escreve pelas suas coordenadas, sem T, como (1, 2), e o seu vetor posição é o vetor (1, 2)T de ℝ2, a seta que vai da origem até o ponto: os dois têm as mesmas coordenadas, mas são objetos diferentes. Sejam n + 1 pontos do plano euclidiano, chamados de pontos de controle e escritos P0, …, Pn. A curva de Bézier de grau n com esses pontos de controle é o conjunto dos pontos B(t), para 0 ≤ t ≤ 1, dados por
B(t) = b0,n(t)P0 + ⋯ + bn,n(t)Pn.
Essa soma de pontos é calculada com os vetores posição: o vetor posição de B(t) é a combinação linear dos vetores posição de P0, …, Pn com os coeficientes b0,n(t), …, bn,n(t). Escrevendo B(t) = (x(t), y(t)), as funções x(t) e y(t) são polinômios de grau no máximo n. As coordenadas de x(t) na base de Bernstein são as abscissas dos pontos de controle, e as de y(t) são as ordenadas. Mover o ponto de controle Pi muda só a coordenada de índice i de x(t) e de y(t).
Para cada t ∈ [0, 1], os valores bi,n(t) são não negativos e somam 1. Por isso B(t) é uma média ponderada dos pontos de controle, e a curva fica dentro do menor polígono convexo que contém os pontos de controle, o fecho convexo deles. Em t = 0, só b0,n é diferente de zero, e vale 1; em t = 1, só bn,n é diferente de zero, e vale 1. Logo a curva começa em P0 e termina em Pn.
Para um valor fixo de t, a construção de De Casteljau calcula B(t) com uma única operação, repetida: trocar dois pontos Q e R pelo ponto (1 − t)Q + tR, que pertence ao segmento de Q a R.
- Comece com a lista P0, …, Pn dos pontos de controle.
- Troque cada par de pontos consecutivos da lista, na ordem em que aparecem, por esse ponto do segmento entre eles. A nova lista tem um ponto a menos.
- Repita o passo 2 até restar um único ponto: esse ponto é B(t).
Na bancada: na parte Em dimensão n, arraste os pontos de controle no quadro Curvas de Bézier e a base de Bernstein e mova o controle Instante t do painel Curva de Bézier: os segmentos em âmbar são a construção de De Casteljau, e o ponto vermelho é B(t). O gráfico de barras abaixo da curva compara as coordenadas da ordenada y(t) nas duas bases. O botão Elevar o grau escreve a mesma curva na base de Bernstein de grau n + 1, com um ponto de controle a mais.