Matematik
Refleksionsvektor
Hej alle.
I forbindelse med udregning af en refleksionvektor inden for computergrafik, er der en formel jeg gerne ønsker forklaret.
En vektor, V, rammer en overflade. En normalvektor i skæringspunktet for overfladen er givet.
Her skal dannes en ny vektor, en refleksionsvektor, R1, som er en spejlet version af V over N.
Formlen for at udregne R1 lyder: V + (2 * dot(V,N) * N)
En skitse af situationen kan ses her: http://scratch.mit.edu/projects/Canthiar/41976
Jeg vil gerne høre hvorfor formlen lyder som den gør. Prikproduktet af V og N, giver cos til vinklen mellem V og Normalen, idet vi har med enhedsvektorer at gøre. Så ganges dette med N, og så bliver jeg lidt i tvivl om hvad der sker her. For er vores prikprodukt ikke et reelt tal? Idet vi så ganger N med et tal, bliver den da kun forlænget?
Hvis man tager et kig på det ovenstående link, repræsenterer den den gule streg vist 2*dot(V,N)*N.
Håber nogen kan uddybe hvad der egentlig sker i ligningen...
Svar #1
10. januar 2010 af peter lind
Spejl den indkomne vektor i tangentfladenl Tegn det op. Adder du til denne vektor normalvektoren gange et passende tal vil du få refleksionsvektoren. Så skal du blot finde hvor lang den skal være. Hvis du kigger på figuren vil du se at den skal være 2 gange projektionen af den indfaldne vektors projektion på normalvektoren.
Svar #2
10. januar 2010 af Sovsehjerne (Slettet)
Det er nok at bemærke, at (v•n)n er projektionen af v på n. Så for at finde spejlingen af v, skal vi blot lægge -2 gange projektionen til v:
v-2(v•n)n
Svar #3
10. januar 2010 af peter lind
#0 For at forklare nogle forskelle. På din internetside peger vektoren for den indfaldne stråle lidt ulogisk ud fra tangentfladen; medens den i #2 mere logisk betragtes som pegende ind mod fladen.
Skriv et svar til: Refleksionsvektor
Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk?
Klik her for at oprette en bruger.
