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.