/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
3D - cirkler ?
Fra : Stig Johansen


Dato : 17-01-03 08:52

Kære alle.

Jeg roder med lidt dynamisk genereret grafik, og ønsker bla. at lave 3D
pies.
Jeg har fundet en masse eksempler, men de er alle bygget med en masse små
liniestykker, og det synes jeg ikke er særlig hensigtsmæssigt.

Jeg har kigget lidt på:
http://home.t-online.de/home/lutz.tautenhahn/svgvml3d/index.html
samt matematikken bag.

Den omhandler også 'kun' vektorer.

Er der nogen, der kan give et hint om en tilsvarende
transformationsalgoritme for cirkel/ellipse(udsnit)?

Jeg har en eller anden fornemmelse af, at 3D perspektivet bør kunne
udtrykkes i en eller anden ellipse form, men det er efterhånden (desværre)
25 år side jeg rodede med matematik på uni'et.

Alle råd modtages med kyshånd, også hvis det er umuligt, så må jeg jo bare
bruge 'linie' metoden.

--

Med venlig hilsen/Best regards
Stig Johansen
Stig.Johansen@udvikling.it.dk
(remove dot dk)






 
 
Henning Makholm (17-01-2003)
Kommentar
Fra : Henning Makholm


Dato : 17-01-03 18:24

Scripsit "Stig Johansen" <stig.johansen@udvikling.it>

> Jeg roder med lidt dynamisk genereret grafik, og ønsker bla. at lave 3D
> pies.

Hvis du bare vil lave lagkagediagrammer, kan du så ikke nøjes med lidt
isometrisk snyderi med skyggelægning pr. øjemål? Så er strengt
centralperspektiv da næppe vigtigt.

> Jeg har fundet en masse eksempler, men de er alle bygget med en masse små
> liniestykker, og det synes jeg ikke er særlig hensigtsmæssigt.

Det er ellers det normale. Jeg tror at gevinsten ved at kunne tegne et
helt buestykke på en gang opvejes af ulempen ved at der ikke længere
kun er én slags linjestykker at tegne. Formlerne bliver mere
komplicerede, og der er flere forskellige tilfælde at tage hensyn til
når man skal beregne om to linjer skærer hinanden.

> Jeg har en eller anden fornemmelse af, at 3D perspektivet bør kunne
> udtrykkes i en eller anden ellipse form,

Ja, eller en anden andengradskurve. Hvis billedplanen (den plan gennem
dit kamerapunkt der er vinkelret på synsretningen) skærer cirklen, får
du i stedet den ene gren af en hyperbel. Og sådan en kan du nok
alligevel ikke få tegnet uden at opløse den i småstykker.

> Alle råd modtages med kyshånd,

Problemet hører under projektiv geometri. Her er den plan jeg
umiddelbart ville følge, hvis jeg *skulle* gøre det eksakt:

1. Translater hele scenen så kameraet er i (0,0,0).

2. Drej den så cirklen ligger i planen z=1.

3. Opskriv ligningen for cirklen i denne plan. Det bliver et
andetgradspolynomium i x og y.

4. Homogeniser ligningen ved at gange z eller z² på hvert enkelt led,
så alle led har grad 2. Nu har du ligningen for den
(ikke-cirkulære) kegle som udstryges af en linje mellem
kamerapunktet og hver af cirklens punkter.

5. Drej dit koordinatsystem én gang til, så synsregningen bliver den
nye z-akse og den nye x- og y-akse svarer til billedkoordinaterne.

6. Substituer dine nye koordinater ind i ligningen fra (4). Sæt så z=1.

7. Nu har du en andengradsligning for billedet af din cirkel i
billedplanet. Desværre vil den også give et "bagvendt" billede af
det stykke af cirklen (om noget) som er bag kameraet. Den mulighed
må du tage hensyn til med en eller anden adhoc-metode.

8. Brug standardmetoder til at forsøge at identificere ligningen
fra (7) som en ellipse med kendt stor- og lilleakse. Så vidt jeg
husker er det noget med at rotere 2D-koordinatsystemet indtil
xy-koefficienten er 0, så hele polynomiet kan skrive som sum af to
andengradspolynomier i henholdsvis x og y - hvis deres
andengradskoefficient har samme fortegn er du i det elliptiske
tilfælde.

Jeg har ikke foretaget udregningerne i praksis (ovenstående er sådan
set bare et konstruktivt eksistensbevis uden hensyntagen til
effektivitet), så jeg skal ikke kunne sige om der er nogen beregning
at spare ved at lave dem symbolsk og forsøge at nå frem til en formel
i ét trin.

--
Henning Makholm "We will discuss your youth another time."

Torben Ægidius Mogen~ (20-01-2003)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 20-01-03 14:29

"Stig Johansen" <stig.johansen@udvikling.it> writes:


> Jeg roder med lidt dynamisk genereret grafik, og ønsker bla. at lave 3D
> pies.

3D lagkagediagrammer er fandens værk. Et lagkagediagram bør give
læseren en god ide om den relative størrelse mellem forskellige
"stykker". Når man viser dem i 3D, gør man det sværere at se dette.

   Torben

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste