Bezier-kurvor är typer av kurvor som föreslagits på 60-talet av XX-talet oberoende av Pierre Bezier från Renaults bilföretag och Paul de Casteljo från Citroen - företaget, där de användes för att designa bilkarosser.
Även om de Casteljous upptäckt gjordes något tidigare än Béziers (1959), publicerades hans forskning inte och hölls hemlig av företaget förrän i slutet av 1960-talet.
Bézier-kurvan är ett specialfall av Bernstein-polynomen , beskrev av den ryske matematikern Sergei Natanovich Bernstein 1912.
Kurvor introducerades först för allmänheten 1962 av den franske ingenjören Pierre Bézier , som, efter att ha utvecklat dem oberoende av de Casteljot, använde dem för datorstödd design av bilkarosser. Kurvorna fick sitt namn efter Béziers, och den rekursiva metod han utvecklade för att definiera kurvor (de Casteljos algoritm) fick sitt namn efter de Casteljo .
Därefter blev denna upptäckt ett av de viktigaste verktygen för datorstödda designsystem och datorgrafikprogram .
Låt sekvensen av kontrollpunkter , där och för , anges i dimensionsutrymmet över .
Sedan uppsättningen av punkter med koordinater , parametriskt givna av uttryck
för var en för ,kallas en Bezier- kurva .
Ett gradpolynom med avseende på en parameter kallas basfunktionen (motsvarande kontrollpunkten ) för en Bézier-kurva, eller ett Bernstein-polynom .
Här är antalet kombinationer från till .
När n = 1 är kurvan ett rakt linjesegment, referenspunkterna P 0 och P 1 bestämmer dess början och slut. Kurvan ges av ekvationen:
.En kvadratisk Bezier-kurva (n = 2) definieras av tre ankarpunkter: P 0 , P 1 och P 2 .
.Kvadratiska Bezier-kurvor i splines används för att beskriva formen på tecken i TrueType-teckensnitt och SWF - filer.
I parametrisk form beskrivs en kubisk Bezier-kurva (n = 3) med följande ekvation:
.Fyra referenspunkter P 0 , P 1 , P 2 och P 3 givna i 2- eller 3-dimensionellt utrymme bestämmer kurvans form.
Linjen utgår från punkten P 0 , på väg mot P 1 och slutar vid punkten P 3 , närmar sig den från sidan P 2 . Det vill säga att kurvan inte passerar genom punkterna P 1 och P 2 , de används för att indikera dess riktning. Längden på segmentet mellan P 0 och P 1 bestämmer hur snart kurvan kommer att vända till P 3 .
I matrisform skrivs en kubisk Bézier-kurva enligt följande:
,där kallas den grundläggande Bezier-matrisen:
Moderna grafiksystem och format som PostScript (liksom Adobe Illustrator och Portable Document Format (PDF) -format baserade på det ), Scalable Vector Graphics (SVG) [1] , Metafont , CorelDraw och GIMP använder Bezier-splines för att representera kurvade former. , sammansatt av kubiska kurvor.
Parametern t i funktionen som beskriver det linjära fallet för Bezier-kurvan bestämmer exakt var i avståndet från P 0 till P 1 B ( t ) finns . Till exempel, vid t = 0,25, motsvarar värdet av funktionen B ( t ) en fjärdedel av avståndet mellan punkterna P 0 och P 1 . Parametern t ändras från 0 till 1, och B ( t ) beskriver ett linjesegment mellan punkterna P 0 och P 1 .
För att konstruera kvadratiska Bezier-kurvor krävs att man väljer två mellanliggande punkter Q 0 och Q 1 från villkoret att parametern t varierar från 0 till 1:
För att konstruera kurvor av högre ordning krävs på motsvarande sätt fler mellanliggande punkter. För en kubisk kurva är dessa mellanpunkter Q 0 , Q 1 och Q 2 som beskriver linjära kurvor, samt punkter R 0 och R 1 som beskriver kvadratiska kurvor: en enklare ekvation .
För kurvor av fjärde graden kommer dessa att vara punkter Q 0 , Q 1 , Q 2 och Q 3 som beskriver linjära kurvor, R 0 , R 1 och R 2 som beskriver kvadratiska kurvor, samt punkter S 0 och S 1 som beskriver kubisk Bezier kurvor:
På grund av den enkla inställningen och manipuleringen har Bezier-kurvor funnit bred tillämpning i datorgrafik för modellering av jämna linjer. Kurvan ligger helt inom det konvexa skrovet av dess referenspunkter. Denna egenskap hos Bezier-kurvor, å ena sidan, förenklar i hög grad uppgiften att hitta kurvornas skärningspunkter (om de konvexa skroven på ankarpunkterna inte skär varandra, så skärs inte kurvorna själva), och å andra sidan , möjliggör den intuitiv kontroll av kurvparametrarna i det grafiska gränssnittet med hjälp av dess ankarpunkter. Dessutom kan affina kurvomvandlingar ( translation , skalning , rotation , etc.) också utföras genom att tillämpa lämpliga transformationer på ankarpunkterna.
De viktigaste är Bezier-kurvor av andra och tredje graden (kvadratisk och kubisk). Kurvor av högre grader under bearbetning kräver fler beräkningar och används mindre frekvent för praktiska ändamål. För att bygga linjer med komplexa former kan individuella Bezier-kurvor kopplas sekventiellt till varandra i en Bezier -spline . För att säkerställa en jämn linje vid korsningen av två kurvor måste tre angränsande ankarpunkter för båda kurvorna ligga på samma räta linje. I vektorgrafikprogram , som Adobe Illustrator eller Inkscape , är sådana fragment kända som "paths" ( path ), och i 3DS Max och liknande 3D-modelleringsprogram kallas Bezier-kurvor för "splines".
En kvadratisk Bezier-kurva med koordinater omvandlas till en kubisk Bezier-kurva med koordinater .
Samplingsfrekvensen definieras enligt följande:
, det vill säga varje nästa punkt måste skilja sig från den föregående med 1 (låt oss säga en pixel). Dessutom, om du frågar så här:
Genom det kan du beräkna .
Låt oss lösa denna ekvation för första ordningens Bezier-kurvor (linjär):
Låt oss skriva skillnaden mellan punkter för en axel:
Låt oss ta de vanliga faktorerna utanför parentes:
Låt oss hitta :
På detta sätt kan du beräkna samplingshastigheten för att korsa en viss axel på en Bezier-kurva av en viss ordning. Det vill säga, du måste få 16 sådana ekvationer för Bezier-kurvor från 1:a till 16:e ordningen, det är alltid satt av punkter, det kommer att räcka med att ersätta deras koordinater i den resulterande ekvationen för att kringgå kurvan med den minsta entydiga diskretiseringsnivån .
Kurvor | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Definitioner | |||||||||||||||||||
Förvandlad | |||||||||||||||||||
Icke plan | |||||||||||||||||||
Platt algebraisk |
| ||||||||||||||||||
Platt transcendental |
| ||||||||||||||||||
fraktal |
|