3D Parametriske objekter UiA Logo

[Hovedmeny] [SimReal] [SimVideo]
Første versjon av programmering av parametriske 3D-objekter.

3D-flaten tegnes umiddelbart når en korrekt parametrisering av flaten er skrevet inn.
Flaten kan roteres i rommet, reskaleres, påføres nye grenser og maskevidder.
Applikasjonen skal utvides slik at brukeren i tillegg kan legge inn flere simultane flater, legge inn parametriserte kurver, tangentvektorer, normalvektorer, samt vektorfelt med tilhørende komponenter.
Kurve-integraler (herunder strøming og sirkulasjon), samt fluks skal studeres.

Parameterisering av flaten vist i dette eksemplet er gitt ved:


r(u,v) = [3sinu·cosv,3sinu·sinv,0.3u(u-3)]


'Åpningene' som finnes i flatene vist på denne siden kan selvfølgelig lukkes hvis ønskelig (dette gjøres ved endring av grensene for parametrene u og v). Maskestørrelsen kan endres og/eller maskene kan skjules hvis ønskelig.


En nyere versjon (enn den som er avbildet her) av applikasjonen er tilgjengelig på nettet.
Den nye versjonen gir mulighet for innlegging av aksesystem og flytting av origo.
Nye versjoner vil følge fortløpende.

Torus (ulike konstantvariasjoner i torus-parametriseringen vises nedenfor).

Den generelle parametriseringen av en torus er gitt ved:

r(u,v) = [(a+bcosv)cosu,(a+bcosv)sinu,csinv]

I dette eksemplet vises en torus med a=5, b=2, c=2.

Samme som ovenfor, men nå med a=5, b=4.5, c=4.5.
Samtidig er øvre grense for v senket fra 2π til π slik at nedre halvdel av torusen fjernes (torusen er her rotert 180 grader vertikalt).

Samme som ovenfor, men nå med a=5, b=7, c=7

Litt informasjon om hvordan slike simuleringer programmeres:

Hver av de tre komponentene i den parametriske vektorfunksjonen gjennomløper en rutine for omforming fra infix-form til postfix-form.
Dette forenkler behandling/beregning av aritmetiske uttrykk (spesielt pga at ulike matematiske operatorer har ulik prioritet).
Deretter utføres symbolsk partiellderivasjon (slide nr 53-70) av den parametriske vektorfunksjonen til eventuelle beregninger av tangentvektorer, normalvektorer, tangentplan, ... .
Den deriverte vektorfunksjonen gjennomløper samme rutine som nevnt ovenfor mht omforming til postfix-form.
Symbolsk derivasjon bestemmes ved å splitte funksjonsuttrykk opp i sine enkelte bestanddeler med påfølgende plassering i et aritmetisk tre.
De enkelte komponentene plasseres som løv i dette treet, mens roten i ethvert subtre består av tilhørende operatorer.
På denne måten kan ethvert aritmetisk uttrykk deriveres symbolsk, for deretter omforming til postfix-form og beregning av verdier.
Alle disse matematiske operasjonene ivaretas av SimReal-kalkulatoren som styrer (usynlig for brukeren) i bakgrunnen.
Omforming til postfix-form og symbolsk derivasjon utføres kontinuerlig mens brukeren skriver inn funksjonsuttrykkene for vektorfunksjonen.

Flaten representeres vha en to-dimensjonal tabell som inneholder informasjon om maskenoder og maskeflater.
For enhver node finnes tilhørende maskeflater som naboer til noden i den todimensjonale tabellen.
Hver node (og maske) får tildelt korrekt posisjon i rommet og en programmert fargegenerator fordeler farger til hver maske.
Maskene sorteres mht avstand til observatør, plasseres på en stakk og tegnes vha en såkalt 'painting algoritme' ved at de fjerneste flatene tegnes først (dermed skjules 'usynlige' masker).