Bézierkurva
En bezierkurva är en parametrisk kurva som är vanligt förekommande inom datorgrafik
och relaterade områden, särskilt inom vektorgrafik eftersom bezier kurvor har egenskapen
att de kan skalas oändligt. Bezierkurvor är särskilt populära inom bildbehandling
då bildhandlingsprogram ofta innehåller verktyg för att generera slingor/"paths" med
hjälp av dessa kurvor. År 1962 blev fransmannan Pierre Bezier den första som publicerade
om bezierkurvor och själva använde han dem flitigt som verktyg för att designa
bilar.
Testa att beräkna bezierkurvor med java appleten nedan. Programmet använder Casteljau's algoritm
som i sin tur utnyttjar Bernsteinpolynom.
Använd musen för att lägga till eller ta bort kontrollpunkter.
Beizierkurvans grad
Beizierkurvas grad är ett mindre än det totala antalet kontrollpunkter som definerar
kurvan. Det behövs allså fyra kontrollpunkter för att generera en kubisk bezierkurva
och tre kontrollpunkter för att generera en kvadratisk bezierkurva.
För att generera långa och komplexa kurvor krävs kraftigare beräkningar och bernsteinpolynomet
som innehåller binomialkoefficienter växer allt för snabbt för att dessa ska vara hanterbara.
Istället brukar man kombinera flera kurvor med lägre grad, och dessa bildar tillsammans en lång och komplex kurva.
Java-programmet ovanför använder sig av kubiska bezierkurvor som sammanfogas allt
eftersom kurvan växer. Detta är implementerat genom att dela upp kontrollpunkterna i olika
listor där varje lista om fyra punkter definierar en delkurva. För att
säkerställa att delkurvorna matchar varandra, måste ändpunkterna och dess närmaste
punkt ligga på en linje. Punkterna som utgör skarven mellan två kurvsegment måste
alltså ligga på en linje som utgörs av de punkter som gränsar till ändpunkterna.
För att användaren inte ska behöva bekymra sig om det, lägger vi automatiskt in
en extra intern kontrollpunkt mellan var fjärde ordinarie kontrollpunkt. På så sätt
får vi en linje med tre punkter där den mittersta (nya) punkten blir den sista respektive
första i de två delkurvor som skapas.
Källkoden till appleten kan fås genom att skicka ett mail till info(a)raknaut.se.