Bezier kurve

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 6. maj 2019; checks kræver 26 redigeringer .

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 .

Definition

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 .

Noter

  1. Bezier-kurven svarende til begge og er punktet .
  2. Bezier-kurven svarende til parret , det vil sige ved , er et (lineært) parametriseret segment, der forbinder punktet (at ) med punktet (at ).
  3. I enhver rækkefølge indeholder Bezier-kurven både et punkt (dette er billedet af parameteren ) og et punkt (dette er billedet af parameteren ).
  4. En Bezier-kurve (i det generelle tilfælde, det vil sige, hvis den ikke er degenereret til et punkt ) er orienterbar, da den er billedet af et orienteret segment . Kontrolpunktsekvenser svarer til Bezier-kurver, der falder sammen som sæt af punkter, men har (generelt) modsatte orienteringer.
  5. Bezier-kurverne svarer til sekvenserne af kontrolpunkter og matcher ikke ved .
  6. Hvis du ændrer , så kun .

Typer af Bezier-kurver

Lineære kurver

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:

.

Kvadratiske kurver

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.

Kubiske kurver

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.

Bygning af Bezier-kurver

Lineære 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 .

Kvadratiske kurver

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:

Kurver af højere grader

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:

Bezier-kurveegenskaber

Applikationer i computergrafik

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".

Konvertering af kvadratiske Bézier-kurver til kubiske

En kvadratisk Bezier-kurve med koordinater konverteres til en kubisk Bezier-kurve med koordinater .

Sample rate af Bezier-kurver [2]

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 .

Se også

Noter

  1. World Wide Web Consortium ( W3C ). Skalerbar vektorgrafik (SVG) 1.1 (anden udgave). Kapitel 8: Paths  (engelsk) (16. august 2011). — W3C-anbefaling. Dato for adgang: 21. maj 2012. Arkiveret fra originalen 24. juni 2012.
  2. Algoritmer: Bezier-kurver . designermanuals.blogspot.com . Hentet 9. januar 2021. Arkiveret fra originalen 12. januar 2021.

Litteratur

Links