[CG] Verband tussen r, n en h

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

Glenn
Posts: 280

[CG] Verband tussen r, n en h

Post#1 » Thu May 28, 2009 9:42 pm

Hey allen,

Ik zit momenteel in de knoop met de betekenis van de verbanden tussen r, n en h. In de cursus staat op p128 :

n . r = h

met h = H / |s|
*



Hier kan ik echter niet aanuit. Om dit te verklaren staat er:
De betekenis hiervan is dat het vlak gedefinieerd wordt door alle vectoren r in de ruimte die als projectie langs de uitwendige normaal (de betekenis van een scalair product!) een waarde h opleveren.

De waarde van h nu heeft een interessante betekenis: de absolute waarde |h| is de (korste) afstand van het vlak tot de oorsprong (in het huidig assenstelsel dus het oogpunt).
Vervolgens wordt er nog een voorbeeld gegeven dat het voor mij niet duidelijker maakt.

Om te proberen de hele situatie wat helderder te maken, heb ik voor mezelf een schets gemaakt om zo de betekenis van het verband tussen deze drie termen proberen duidelijker te maken (zie fig. hieronder).

Image

Op de figuur is n de genormeerde uitwendige normaal en zijn de blauwe vectoren, de vectoren r die het vlak beschrijven.

Maar, zelfs met het tekenen van de figuur zie ik niet in waarom het inproduct van n en r de korste afstand tot het vlak zou moeten weergeven. Wellicht zit die cosinus van het inproduct er voor iets tussen, daar deze denk ik voor een projectie zal zorgen.

Waarschijnlijk zullen die blauwe pijlen door de projectie op die zwarte pijl terecht komen (denk ik), waardoor ze loodrecht op het vlak komen te staan(en hierdoor dus iets over de afstand kunnen vertellen). Maar..., niet alle blauwe pijlen zijn even lang, dus krijgen we dan geen verschillende afstand h als we het inproduct nemen met een andere r-vector (zie ook fig. 2)? De korste afstand van een vlak tot de oorsprong is toch 1 getal, en kan toch geen verschillende waarden opleveren?

Image
fig. 2 Het inproduct van beide vectoren levert een verschillend resultaat, hoewel we slechts 1 waarde voor h verwachten

Weet er toevallig iemand raad? Ik denk dat ik ergens fout zit in mijn redenatie. Ik zou graag weten waarom n . r de korste afstand tot het vlak geeft.

Groetjes,
Glenn

* s is de ongenormeerde vector en H is de vergelijking van het (driehoeks)vlak. Op de fig wordt er een rechthoekig vlak getekend maar je moet maar denken dat het een driehoeksvlak is.

Glenn
Posts: 280

Post#2 » Thu May 28, 2009 9:46 pm

zou er iemand dit naar 1ste bachelor kunnen plaatsen? ik heb me weer van plaats vergist :( ...

User avatar
zarry
Posts: 212

Post#3 » Thu May 28, 2009 10:25 pm

normaal is n . r gewoon de projectie van r op n en dus h omdat h de kortste afstand van 0,0 naar u vlak is en das dus loodrecht en aangezien n loodrecht is en ge r daarop projecteerd en n lengte 1 heeft klopt da :) is da beetje duidelijk? :D
Ik spreek Zwarryzwaniaans en jij?

User avatar
Joachimvdh
Prosenior
Posts: 1092

Post#4 » Thu May 28, 2009 10:39 pm

Ik zal je zo goed als ik kan proberen te helpen.
n . r = h

met h = H / |s|*
In niet genormalizeerde vorm is de formule
s * r = H

Ik hoop dat je begrijpt hoe hij daaraan komt. Daarbij vermeld hij ook dat r volledig variabel is.

Dan normaliseert hij s tot n. (maw s delen door zijn lengte) dus is het logisch dat ook H door de lengte moet worden gedeeld, zo komt hij aan kleine h.

Laten we niet vergeten dat in het begin we nog altijd zijn vertrokken met een vlakvergelijking die we volledig hebben herschreven! ook n * r = h is dus nog steeds een vlakvergelijking. (bij ontwikkeling kom je de vorm nx * x + ny * y + nz * z = H uit en dat is iets wat bv ook bij raycasting terugkomt)

Nu die r nog even uitleggen, waarschijnlijk zit je vast met de uitdrukking "projectie langse de normaal"
Beschouw dit eens als projectie OP de normaal.
Zo zal je zien dat, indien je r op n projecteert, je wel degelijk lengte h zult moeten uitkomen om tot aan het vlak te rijken.

Bedenk bv eens een hoek van 90° tussen n en r. Dan zal de projectie van r op de normaal een punt zijn.... Zo geraak je dus nooit aan die afstand h en dat is ook geheel logisch want n staat zelf loodrecht op het vlak en zo lopen r en het vlak parallel.

Ik hoop dat je het begrijpt, anders teken ik het wel eventjes uit.

Glenn
Posts: 280

Post#5 » Fri May 29, 2009 10:34 am

Kunt ge eigenlijk intuitief zien dat:

sx * x + sy * y + sz * z = H ?

Want hieruit volgt onmiddellijk dat

s . r = H

wegens een definitie van het inproduct. Hierin speelt r dan de rol van vector (x,y,z).
Hij legt dat wiskundig uit, en ik zie ook dat da allemaal wel klopt, maar ik vraag me af hoe ge da ook intuitief kunt snappen.

Vervolgens gaat hij dan normaliseren door zowel het LL als het RL te delen door |s|. Hierdoor krijgt ge

n . r = h waarbij h = H / |s|.

Ook hier zit ik weer wat dat intuitief probleem. Ik voel niet aan waarom de korste afstand tot een vlak gelijk moet zijn aan de vlakvergelijking gedeeld door de absolute waarde van de (ongenormaliseerde) uitwendige normaal.

Misschien zit hem bij dit punt net het probleem. Als ik misschien intuitief kan snappen waarom

sx * x + sy * y + sz * z = H & h = H / |s| , dan ben ik misschien al een hele stap verder.

In ieder geval al bedankt voor de hulp die jullie gaven :). Ik doe men best op het allemaal te begrijpen, maar ik zie het nog steeds niet in :(.

User avatar
Joachimvdh
Prosenior
Posts: 1092

Post#6 » Fri May 29, 2009 12:24 pm

De constante term in de vlakvergelijking is de afstand tot de oorsprong.
Het is namelijk de waarde die ge krijgt als ge als r de oorsprong invult ( r = (0,0,0) )

Glenn
Posts: 280

Post#7 » Fri May 29, 2009 2:17 pm

Joachimvdh wrote:De constante term in de vlakvergelijking is de afstand tot de oorsprong.
Het is namelijk de waarde die ge krijgt als ge als r de oorsprong invult ( r = (0,0,0) )
H komt van de vergelijking vlakvergelijking Ax + By + Cz + H = 0. Dez vergelijking volgt eenvoudig uit de cartesische vergelijking waar ze in de cursus mee beginnen. De A, B en C blijken in ons geval gelijk te zijn aan sx, sy en sz.

H blijkt dus de afstand van het vlak voor te stellen. In mijn cursus van het middelbaar staat dat als H = 0, we een vlak door de oorsprong hebben en als het verschillend is van 0, een vlak hebben dat niet door de oorsprong gaat. Jammer genoeg wordt er in die cursus verder ni veel aandacht aan besteed, en vind ik der op het internet ook ni echt dingen over terug.

Het blijft me daarom een raadsel op welke manier die H moeten zien op een figuur. Is die H op mijn figuur bv. de rode pijl, of de groene pijl, of nog iets anders? Ik kan me viel afstanden van een vlak tot de oorsprong bedenken.

En wat zal dan het verschil zijn met kleine h? Om deze te vinden doen we H / |s| wat gelijk is aan het delen van een getal door een vector. Hoe moet ik mij zoiets kunnen voorstellen? Een vector delen door een getal, is het verkleinen van de vector als ik me niet vergis. Maar andersom, is me helemaal een raadsel.

En, hoe vind ik die kleine h terug op de figuur? Het wiskundig afleiden begrijp ik van dat onderdeel allemaal. Er wordt ontwikkeld, gebruik gemaakt van inproducten enz. Maar ik weet niet hoe ik me dit allemaal moet voorstellen in de ruimte. Allereerst zou ik al graag weten wat de kleine en de grote h zijn op de figuur hieronder. Ik dacht altijd dat de kleine h, de groene pijl is, maar hier ben ik niet meer zeker van.

Maar dat is dus het eerste probleem. Het zeker zijn van wat de afstanden (=getallen) h en H in de ruimte zijn. Dan vraag ik me af hoe ge door die blauwe pijlen te projecteren een eenduidig antwoord kunt krijgen voor h. Doordat al die pijlen ni evenlang zijn, gaat ge bij het projecteren toch allemaal andere lengtes voor uwe geprojecteerde vector krijgen? Alle ja, ik denk toch altijd dat wat ze met dat projecteren bedoelen, zo'n blauwe vector op diej zwarte leggen. En aangezien niet alle blauwe pijlen evenlang zijn, zult ge als antwoord den ene keer ne langere vector krijgen (en een hoger getal), als den andere keer. Da betekent dus da ik voor al die blauwe vectoren een ander antwoord zou krijgen voor kleine h, wa dus ni klopt. Misschien zit er dus ook iets mis in mijn manier van denken over de projectie. Ik hoop dat jullie me kunnen helpen :).

Ik vind het wel raar eigenlijk da we geen aparte cursus ruimtemeetkunde krijgen aan de UA. Het had mss beter geweest als ze in 't eerste jaar ne cursus ruimtemeetkunde hadden gegeven, en in 't tweede jaar graphics ofzo. Of eventueel in 't eerste semester, en dan computersystemen naar 't tweede jaar verschuiven of zoiets. Maja, soit, tis nu zo, dus kzal me moeten zien te redden :).

Image

User avatar
Joachimvdh
Prosenior
Posts: 1092

Post#8 » Fri May 29, 2009 3:13 pm

H = niet echt een betekenis op de figuur
h = H/|s|

Je deelt niet door een vector, maar door zijn lengte.
h is de afstand van de oorsprong tot het vlak en niet zo maar een afstand maar de kortste, maw een loodlijn door de oorsprong op het vlak.

Je zegt inderdaad dat als h (of H maakt in dit geval niet uit) 0 is, het vlak door de oorsprong loopt. Kijk nog eens naar mijn uitleg, als je als r de oorsprong neemt, vallen alle termen weg (want x, y, z = 0) en hou je nog h over. ;) jep, in de oorsprong.

Voor je tweede probleem,
Neem bijvoorbeeld een vlak evenwijdig met het XY vlak.
Pak als waarde voor h bv 2, maw zweeft 2 eenheden boven het XY vlak. In dat geval staat de z-as loodrecht op dit vlak en is ze dus ook de kortste afstand tot de oorsprong. Denk nu aan eenderwelke andere vector, die vanuit de oorsprong naar dit vlak loopt. Akkoord, deze zullen allemaal langer zijn, maar als je ze projecteert op de z-as zul je elke keer opnieuw 2 uitkomen.

Glenn
Posts: 280

Post#9 » Fri May 29, 2009 7:01 pm

Joachimvdh wrote:H = niet echt een betekenis op de figuur
h = H/|s|

Je deelt niet door een vector, maar door zijn lengte.
h is de afstand van de oorsprong tot het vlak en niet zo maar een afstand maar de kortste, maw een loodlijn door de oorsprong op het vlak.

Je zegt inderdaad dat als h (of H maakt in dit geval niet uit) 0 is, het vlak door de oorsprong loopt. Kijk nog eens naar mijn uitleg, als je als r de oorsprong neemt, vallen alle termen weg (want x, y, z = 0) en hou je nog h over. ;) jep, in de oorsprong.

Voor je tweede probleem,
Neem bijvoorbeeld een vlak evenwijdig met het XY vlak.
Pak als waarde voor h bv 2, maw zweeft 2 eenheden boven het XY vlak. In dat geval staat de z-as loodrecht op dit vlak en is ze dus ook de kortste afstand tot de oorsprong. Denk nu aan eenderwelke andere vector, die vanuit de oorsprong naar dit vlak loopt. Akkoord, deze zullen allemaal langer zijn, maar als je ze projecteert op de z-as zul je elke keer opnieuw 2 uitkomen.
Super bedankt :D !!! Dat voorbeeld dat je gaf is super duidelijk :) ! Op mijn figuur projecteer je gewoon op de normaal. De reden waarom ik het eerst niet snapte, was omdat ik dacht dat na de projectie niet alle vectoren even lang gingen zijn. Nu ik jou voorbeeld voor ogen haal, zie je onmiddellijk dat dat niet het geval is. Alle vectoren op die z-as zullen wel degelijk even lang zijn.

Die grote H is inderdaad eigenlijk hier niet van belang. Ze is gewoon maar een component van de vlakvergelijking die als bijzondere eigenschap heeft dat het vlak door de oorsprong gaat als ze 0 is. We weten dat ze bepaalt wordt door het inproduct te nemen van s en r. Als we die s nu is normaliseren, krijgen we de vergelijking

n . r = h (waarbij dat h = H / |s|)

Door bovenstaande uitdrukking visueel te interpreteren, weten we dat die kleine h (die nu toevallig gelijk is aan H / |s|), de kortste afstand geeft tot het vlak. Dat deze gelijk is aan die H / |s| maakt dus niks uit. Maar, we hadden wel die grote H nodig om er wiskundig aan te geraken.

Duizend maal bedankt voor je uitleg Joachim, ik denk dat ik het nu snap :D !

Return to “1ste Bachelor”

Who is online

Users browsing this forum: Google [Bot] and 55 guests