Representação matricial
Podemos realmente representar a fórmula Bézier usando a multiplicação matricial, que pode ser útil em outros contextos, por exemplo, para dividir a curva Bézier. Se voltarmos ao nosso exemplo, podemos reescrever P(t) da seguinte forma:
E assim toda a informação sobre a curva quadrática de Bézier é compactada em uma matriz, M. Agora, podemos querer encontrar os coeficientes dessa matriz sem ter que fazer todos esses passos, e de uma forma que seja facilmente programável. Como os coeficientes da matriz são simplesmente os coeficientes do polinômio em frente de cada Pi, o que estamos procurando é a forma expandida do polinômio de Bernstein eq. 2
.
Mais uma coisa: se expandirmos Bi(t) obteremos o polinômio em frente de Pi, que corresponde à coluna i(th) na matriz. Entretanto, isso não é realmente conveniente e seria mais fácil de programar se pudéssemos obter linhas em seu lugar. Dito isto, você pode notar que a linha i(th) da matriz é exatamente a mesma que a coluna invertida (n-i)(th), e os coeficientes da coluna invertida (n-i)(th) não são nada além dos coeficientes de B(n-i)(t) tomados em poderes decrescentes de t.
Você pode querer se referir a eq. 2
e eq. 3
se você estiver tendo alguns problemas.
>
Por isso, os coeficientes da matriz não são nada além dos coeficientes na frente do t, ou seja:
Interpolação
>
Uma aplicação interessante das curvas de Bézier é traçar uma curva suave passando por um conjunto pré-definido de pontos. O motivo é interessante porque a fórmula de P(t) produz pontos e não é da forma y=f(x), então um x pode ter múltiplos y’s (basicamente uma função que pode “recuar”). Por exemplo, poderíamos desenhar algo como isto:
No entanto, a matemática para produzir este resultado não é trivial, por isso escrevi um post dedicado a isto: