Bezier-kurver er typer af kurver, der blev foreslået i 60'erne af det XX århundrede uafhængigt af Pierre Bezier fra Renault -bilfirmaet og Paul de Casteljo fra Citroen - firmaet, hvor de blev brugt til at designe bilkarosserier.
Selvom de Casteljous opdagelse blev gjort noget tidligere end Béziers (1959), blev hans forskning først offentliggjort og holdt hemmelig af virksomheden i slutningen af 1960'erne.
Bézier-kurven er et specialtilfælde af Bernstein-polynomier , beskrevet af den russiske matematiker Sergei Natanovich Bernstein i 1912.
Kurver blev først introduceret til offentligheden i 1962 af den franske ingeniør Pierre Bézier , som, efter at have udviklet dem uafhængigt af de Casteljot, brugte dem til computerstøttet design af bilkarosserier . Kurverne blev opkaldt efter Béziers, og den rekursive metode han udviklede til at definere kurver (de Casteljos algoritme) blev opkaldt efter de Casteljo .
Efterfølgende blev denne opdagelse et af de vigtigste værktøjer i computerstøttede designsystemer og computergrafikprogrammer .
Lad rækkefølgen af kontrolpunkter , hvor og for , være angivet i dimensionsrummet over .
Derefter sæt af punkter med koordinater , parametrisk givet af udtryk
for hvor en for ,kaldet en Bezier- kurve .
Et gradspolynomium med hensyn til en parameter kaldes basisfunktionen (svarende til kontrolpunktet ) af en Bézier-kurve eller et Bernstein-polynomium .
Her er antallet af kombinationer fra til .
Når n = 1, er kurven et lige linjestykke, referencepunkterne P 0 og P 1 bestemmer dens begyndelse og slutning. Kurven er givet ved ligningen:
.En kvadratisk Bezier-kurve (n = 2) er defineret af tre ankerpunkter: P 0 , P 1 og P 2 .
.Kvadratiske Bezier-kurver i splines bruges til at beskrive formen af tegn i TrueType-skrifttyper og SWF- filer.
I parametrisk form er en kubisk Bezier-kurve (n = 3) beskrevet ved følgende ligning:
.Fire referencepunkter P 0 , P 1 , P 2 og P 3 givet i 2- eller 3-dimensionelt rum bestemmer kurvens form.
Linjen stammer fra punktet P 0 , med kurs mod P 1 og ender ved punktet P 3 , der nærmer sig det fra siden P 2 . Det vil sige, at kurven ikke passerer gennem punkterne P 1 og P 2 , de bruges til at angive dens retning. Længden af segmentet mellem P 0 og P 1 bestemmer, hvor hurtigt kurven vender til P 3 .
I matrixform skrives en kubisk Bézier-kurve som følger:
,hvor kaldes den grundlæggende Bezier-matrix:
Moderne grafiksystemer og formater såsom PostScript (samt Adobe Illustrator og Portable Document Format (PDF) -formaterne baseret på det ), Scalable Vector Graphics (SVG) [1] , Metafont , CorelDraw og GIMP bruger Bezier-splines til at repræsentere buede former. , sammensat af kubiske kurver.
t - parameteren i funktionen, der beskriver det lineære tilfælde af Bezier-kurven, bestemmer nøjagtigt, hvor i afstanden fra P 0 til P 1 B ( t ) er placeret . For eksempel ved t = 0,25 svarer værdien af funktionen B ( t ) til en fjerdedel af afstanden mellem punkterne P 0 og P 1 . Parameter t ændres fra 0 til 1, og B ( t ) beskriver et linjestykke mellem punkterne P 0 og P 1 .
For at konstruere kvadratiske Bezier-kurver er det nødvendigt at vælge to mellemliggende punkter Q 0 og Q 1 fra den betingelse, at parameteren t varierer fra 0 til 1:
For at konstruere kurver af højere orden kræves der tilsvarende flere mellempunkter. For en kubisk kurve er disse mellempunkter Q 0 , Q 1 og Q 2 , der beskriver lineære kurver, samt punkter R 0 og R 1 , der beskriver andengradskurver: en enklere ligning .
For kurver af fjerde grad vil disse være punkter Q 0 , Q 1 , Q 2 og Q 3 , der beskriver lineære kurver, R 0 , R 1 og R 2 , der beskriver kvadratiske kurver, samt punkter S 0 og S 1 , der beskriver cubic Bezier kurver:
På grund af den nemme indstilling og manipulation har Bezier-kurver fundet bred anvendelse i computergrafik til modellering af glatte linjer. Kurven ligger helt inden for det konvekse skrog af dets referencepunkter. Denne egenskab ved Bezier-kurver forenkler på den ene side i høj grad opgaven med at finde kurvernes skæringspunkter (hvis ankerpunkternes konvekse skrog ikke skærer hinanden, så skærer kurverne ikke selv), og på den anden side giver det mulighed for intuitiv kontrol af kurveparametrene i den grafiske grænseflade ved hjælp af dens ankerpunkter. Derudover kan affine kurvetransformationer ( translation , skalering , rotation osv.) også udføres ved at anvende de passende transformationer til ankerpunkterne.
De vigtigste er Bezier-kurver af anden og tredje grad (kvadratisk og kubisk). Kurver af højere grader under behandling kræver flere beregninger og bruges sjældnere til praktiske formål. For at bygge linjer med komplekse former kan individuelle Bezier-kurver forbindes sekventielt med hinanden i en Bezier- spline . For at sikre en jævn linje ved krydset mellem to kurver skal tre tilstødende forankringspunkter i begge kurver ligge på den samme lige linje. I vektorgrafikprogrammer , såsom Adobe Illustrator eller Inkscape , er sådanne fragmenter kendt som "stier" ( sti ), og i 3DS Max og lignende 3D-modelleringsprogrammer kaldes Bezier-kurver for "splines".
En kvadratisk Bezier-kurve med koordinater konverteres til en kubisk Bezier-kurve med koordinater .
Samplingshastigheden er defineret som følger:
, det vil sige, at hvert næste punkt skal afvige fra det foregående med 1 (lad os sige en pixel). Desuden, hvis du spørger sådan her:
Gennem det kan du beregne .
Lad os løse denne ligning for førsteordens Bezier-kurver (lineære):
Lad os skrive forskellen mellem punkter for en akse:
Lad os tage de fælles faktorer ud af parentes:
Lad os finde :
på denne måde kan du beregne samplingshastigheden for at krydse en bestemt akse af en Bezier-kurve af en bestemt orden. Det vil sige, du skal have 16 sådanne ligninger for Bezier-kurver fra 1. til 16. orden, det er altid sat af punkter, det vil være nok at erstatte deres koordinater i den resulterende ligning for at omgå kurven med det minimale entydige diskretiseringsniveau .
Kurver | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Definitioner | |||||||||||||||||||
Forvandlet | |||||||||||||||||||
Ikke-plan | |||||||||||||||||||
Flad algebraisk |
| ||||||||||||||||||
Flad transcendental |
| ||||||||||||||||||
fraktal |
|