Vektorrechnung: Suche punkt in Ebene

colblake

Erfahrenes Mitglied
Hallo,

ich bastel gerade an meinem Dotnet-Raytracer weiter und stehe vor folgendem Problem:
Ich möchte Flächenlichter implementieren und brauche dazu zufällige Punkte X auf einer Ebene E, die innerhalb eines bestimmten Radius R zu einem festen anderen Punkt P sind.

Fester Punkt in der Ebene E:
P: (px,py,pz)

Gesuchter zufälliger Punkt X:
X: (xx,xy,xz)

Ebenengleichung der Ebene E:
E: ax+by+cz+d=0


Abstand zwischen P und dem gesuchten Punkt X darf nicht größer sein als der gegebene Radius R.

R = quadratwurzel( (px - xx)^2+(py - xy)^2+(pz - xz)^2 )

Ich möchte jetzt nicht irgend einen Punkt in E nehmen und diesen prüfen ob er in R liegt.

Kann mir jemand weiterhelfen?

Gruß
 
Hi

Form die Gleichung in die Parameterform um
http://www.rither.de/a/mathematik/l...toriell/umrechnen-zwischen-ebenengleichungen/
Kann auch programmiermäßig recht leicht umgesetzt werden.
Kann, wenn benötigt, Code liefern.

Rechne vom zweiten oder dritten Glied die Länge aus (Phytagoras über die drei Vektorteile)
und dividier den Radius durch die Länge.
Das Ergebnis nimmst du für die Variable von dem Glied. Die andere Variable ist 0.

Dann hast du einen Punkt, der genau R entfernt ist.

Wenn du mehr Punkte brauchst, umgekehrt das nichtverwendete Glied nehmen
oder zwischen Variablenwert und 0 Zufallszahlen nehmen.

Nachteil der Methode: Die erzeugten Punkte
sind nicht wirklich zufällig um den Startpunkt gestreut,
sondern auf zwei (sich im Startpunkt schneidenden) Geraden anordenbar.
Müssen sie zufälliger sein?
 
...
Müssen sie zufälliger sein?

Hallo sheel,
danke für deine Antwort. Ja es wäre besser wenn sie zufällig sind, damit das Flächenlicht annähernd glaubwürdige Schatten wirft.
Zu deinem Ansatz:
Mit "Das Ergebnis nimmst du für die Variable von dem Glied. Die andere Variable ist 0." meinst du in deinem Beispiellink lamda bzw my?
Gruß
 
Zurück