Matrisrepresentation

Vi kan faktiskt representera Bézierformeln med hjälp av matrismultiplikation, vilket kan vara användbart i andra sammanhang, till exempel för att dela upp Bézierkurvan. Om vi går tillbaka till vårt exempel kan vi skriva om P(t) på följande sätt:

eq. 6

Och så är all information om den kvadratiska Bézier-kurvan komprimerad i en matris, M. Nu kanske vi vill hitta koefficienterna i den matrisen utan att behöva göra alla dessa steg, och på ett sätt som är lätt att programmera. Eftersom matrisens koefficienter helt enkelt är koefficienterna till polynomet framför varje Pi, är det vi letar efter den expanderade formen av Bernsteinpolynomet eq. 2.

En sak till: om vi expanderar Bi(t) får vi polynomet framför Pi, vilket motsvarar den i(e) kolumnen i matrisen. Det är dock inte riktigt praktiskt och det skulle vara lättare att programmera om vi kunde få rader i stället. Med det sagt kan du kanske lägga märke till att den i(e) raden i matrisen är exakt densamma som den omvända (n-i)(e) kolumnen, och koefficienterna i den omvända (n-i)(e) kolumnen är inget annat än koefficienterna i B(n-i)(t) tagna i fallande potenser av t.

eq. 7

Du kanske vill hänvisa till eq. 2 och eq. 3 om du har några problem.

Därmed är matrisens koefficienter inget annat än koefficienterna framför t, vilket innebär:

eq. 8

Interpolering

En intressant tillämpning av Bézierkurvor är att rita en jämn kurva som går genom en fördefinierad uppsättning punkter. Anledningen till att det är intressant är att formeln för P(t) ger punkter och inte är av formen y=f(x), så ett x kan ha flera y:n (i princip en funktion som kan ”gå bakåt”). Vi skulle till exempel kunna rita något liknande:

Matematiken för att få fram detta resultat är dock inte trivial så jag har skrivit ett eget inlägg för detta:

.

admin

Lämna ett svar

Din e-postadress kommer inte publiceras.

lg