Parametriske_kurver
Grafikk
Børre Stenseth
Matematikk>Parametrisk form

Parametrisk form

Hva
image1

I en rekke situasjoner som kurvetilpassing, flatetilpassing og animasjoner er det hensiktsmessig å beskrive kurver i parametrisk form. Det gjør det lettere å resonnere og regne og det gjør det lettere å programmere.

Linje

La oss se på en rett linje i planet som et første, enkelt eksempel.

parlin1

Trekantene P1,A,P og P1,B,P2 er likedannede og vi kan sette opp følgende:

parlin2

og finne f.eks. y uttrykt ved koordinatene til de to kjente punktene og x.

parlin3

Alternativt kan vi sette opp en parametrisk ligning for linja. Med parametrisk forstår vi at uttrykket skal inneholde en parameter, t, som endrer seg når vi løper langs med linja. For en linje i planet får vi to parametriske uttrykk, ett for x og et for y. Siden vi har en linje, blir begge lineære.

      P=P1+t·(P2-P1)
      x(t)=x1+(x2-x1)·t
      y(t)=y1+(y2-y1)·t
    

Vi ser at x(0)=x1 og y(0)=y1, og x(1)=x2 og y(1)=y2. Siden uttrykkene er lineære kan vi slutte at når t løper fra 0 til 1, så løper x og y fra P1 til P2.

En parametrisk form gir oss kontroll over linjestykkets lengde, ikke bare linjeretningen.

Selv dette enkle eksempelet kan være nyttig i en del situasjoner. Dersom vi skal gjennomføre en animasjon i form av en rettlinjet bevegelse, kan vi styre animasjonen ved hjelp av å gå små steg med t. Vi kan kontrollere hastigheten ved å variere t-stegene. Mer sammensatte bevegelser kan styres ved en sekvens av lineære bevegelser, dersom vi ikke finner på noe lurere.

En utvidelse til linjer i rommet er triviell. Dersom vi kjenner endepunktene: P1(x1,y1,z1) og P2(x2,y2,z2), får vi:

      P=P1+t·(P2-P1)

      x(t)=x1+(x2-x1)·t
      y(t)=y1+(y2-y1)·t
      z(t)=z1+(z2-z1)·t
    

Sirkel

sirkel

Den vanlige måten å skrive en sirkel på er som kjent:
sirkel1

Parametrisk kan vi skrive dette som:

sirkel2

Når t løper fra 0 til 1, løper vinkelargumentet en full sirkel,
og punktet ( x(t) , y(t) ) beskriver en sirkel.

Eller vi kan like gjerne skrive:

sirkel3

Vi ser at vi har en hendig mekanisme for å regne ut sirkler og sirkelsegmenter.

Husk: at de trigonometriske funksjonene i C, C++ og Java forventer radianer som parameter, mens rotasjonsfunksjonen i OpenGL forventer grader.

Spiral

En del av en spiral i rommet, omkring z-aksen, kan vi skrive som:

spiral

Der k angir avstanden mellom to ringer i spiralen. Dersom vi lar t løpe over et større intervall, f.eks. 0..5 vil vi får 5 omdreininger på spiralen.

Dersom vi lar radien være en funksjon av t, så kan vi lage en spiral som f.eks. omslutter en kjegle.

Kule

kuledrawing

En kule beskriver vi vanligvis slik, med radius r:

kule1

Parametrisk kan vi skrive koordinatene for et punkt på kula slik:

kule2

Ellipse

ellipsedrawing

En ellipse skrives vanligvis slik:

ellipseplan0

Piet Hein, den danske poet og tusenkunstner, lanserte sin superellipse etter følgende formel:

piethein

Når eksponenten øker, endres formen på ellipsen i retning av en firkant. Piet Hein mente at 2.5 gir en vakker form. Han formga Sergels torg i Stockholm som en superellipse der de to radiene forholdt seg til hverandre som 5:6.

Parametrisk beskriver vi en ellipse slik:

ellipseplan

En superellipse med utgangspunkt i den parametriske beskrivelse får vi dersom vi opphøyer cos og sinus i en faktor, n. Merk at her blir ellipsen mer lik en firkant når n går mot 0. Dersom rx=ry får vi en sirkel når n=1.

superellipse3

ellipseplan

Ellipsoide

ellipsoidedrawing

I tre dimensjoner kan vi beskrive en elliptisk form slik:

ellipsoid0

På parametrisk form:

ellipsoid1

fireellipsoider

En superellipsoide får vi igjen ved å opphøye cos og sin i faktorer:

ellipsoid1

Normalen i et punkt på overflaten av en superellipse kan beskrives ved:

ellipsoidnormal

Disse uttrykkene er tilstrekkelig til at vi kan beregne, og derved tegne, en superellipse. Vi lar de to vinkelparameterne løpe i en dobbeltløkke, regner ut nabopunkter og bruker OpenGLs tegnekommandoer for å generere flater.

Torus

torus0

En torus, eller en smultring er tilsynelatende en relativt komplisert matematisk figur. Vi vil forsøke å finne en parametrisk beskrivelse av et punkt p på smultringens overflate.

Smultringen er komplett beskrevet ved de to aktuelle radiene: en hovedradius på R og radien i selve smultringens kropp r. Vi ønsker å finne to parametere som kombinerer de to rotasjonene som er nødvendige for å identifisere et punkt entydig, en om hovedaksen og en om selve smultringkroppens akse.

Normalen i hvert punkt kan vi finne ved å tenke oss en "omhyllende" smultring. Normaler vil gå fra den indre smultringen til den ytre, med samme vinkelverdier.

Vi lar w beskrive rotasjonen om selve smultringens hovedakse, "hullet", og lar v beskrive rotasjonen rundt selve smultringkroppen. Vi tegner smultringen i to projeksjoner:

torus

Ved å studere de to projeksjonene kan vi overbevise oss om at punktet p's koordinater er:

torus

Vi kan altså beskrive et vilket som helst punkt på smultringens overflate ved de tre parametriske ligningene ovenfor. Da er vi også i stand til å avgrense flater på smultringoverflaten med nødvendig presisjon og vi er i stand til å beregne normaler på disse flatene enten ved hjelp av kryssproduktet, eller basert på observasjonen ovenfor.

[1]

Et program for å eksperimentere med ellipsoider og toruser (C#): ellipsoide.zip

Referanser
  1. Piet Heins SuperellipseJohn Van Der BurgVestergaards matametik siderwww.matematiksider.dk/piethein.html14-04-2010
Vedlikehold
B Stenseth, oppdatert 2006
Matematikk>Parametrisk form
til toppen