Kegel - Dreieck Schnitt

Hallo,

ich habe ein Dreieck mit seinen Eckpunkten im 3D-Raum sowie einen (unendlich hohen) Kegel mit der Position seiner Spitze, seiner Aufrechtrichtung und seinem Öffnungswinkel gegeben.
Hat jemand eine Idee, wie ich berechnen kann, ob das Dreieck (eventuell auch nur teilweise) im Kegel liegt?
Sobald einer der Punkte in dem Kegel liegt, ist die Berechnung ja trivial. Dazu reicht ja die Winkelberechnung zwischen Aufrechtrichtung und Punkt->Spitze.
Was aber, wenn keiner der Punkte im Kegel liegt? Es ist dann ja nicht einmal unbedingt gegeben, dass eine Kante des Dreiecks im Kegel liegt.
Hintergrund ist ein computergrafischer. Der Kegel steht für eine Art Lichtquelle. Wenn das Dreieck beleuchtet wird, muss es höher aufgelöst werden als wenn es nicht beleuchtet wird (dann ist es einfach durchgängig schwarz). Demzufolge muss die Entscheidung nicht supergenau sein. Allerdings muss in jedem Fall gegeben sein, dass eine Teilbeleuchtung erkannt wird. Wenn das Dreieck knapp nicht beleuchtet wird, ist es auch kein Problem, es als beleuchtet zu behandeln.

Nico

ich habe ein Dreieck mit seinen Eckpunkten im 3D-Raum sowie
einen (unendlich hohen) Kegel mit der Position seiner Spitze,
seiner Aufrechtrichtung und seinem Öffnungswinkel gegeben.
Hat jemand eine Idee, wie ich berechnen kann, ob das Dreieck
(eventuell auch nur teilweise) im Kegel liegt?

Hi Nico,

wie du schon sagtest, ist es kein großer Aufwand zu berechnen, ob einer der Eckpunkte des Dreiecks innerhalb des Kegels liegt. Wenn ich dich richtig vetrstehe, willst du berechnen, ob die Kante zwischen zwei Eckpunkten, die beide außerhalb des Kegels liegen, den Kegel schneidet oder nicht.
Stell dir das Ganze als Aufgabe der analytischen Geometrie vor. Du hast zwei windschiefe Geraden, die eine geht durch die Spitze des Kegels und hat die Richtung der Kegelmittelachse, die andere geht durch die beiden Eckpunkte des Dreiecks. Jetzt berechnest du den Abstand der beiden Geraden und außerdem auf der Kegelmittelachse auch den Punkt der größten Annäherung. Falls es da hakt, melde dich nochmal, dann erklär ich dir wie das geht.
Mit Hilfe der Entfernung dieses Punktes auf der Kegelmittelachse zur Spitze und dem Öffnungswinkel kannst du dann über den Cosinus den Radius des Kegels um diese Stelle berechnen. Wenn der Radius größer ist als die Entfernung der beiden windschiefen Geraden, dann schneidet die Dreieckskante den Lichtkegel.

Wenn du übrigens mit dieser Methode alle drei Kanten untersuchst und jedesmal ist der Radius kleiner als die größte Annäherung der Dreieckskante an die Kegelmittelachse, dann schneidet der Kegel das Dreieck komplett innerhalb, d.h. es entsteht dann ein Lichtkreis auf dem Dreieck.

Grüße!

hendrik

Hallo Hendrik,

danke für die Antwort. Es ging aber auch darum, zu ermitteln, ob das Dreieck geschnitten wird, selbst wenn keine Ecke und keine Kante geschnitten wird.
Die Berechnung hat sich nun aber gerade erledigt, da das Konzept etwas verändert wird, wodurch die Berechnung erstmal nicht notwendig ist.

Nico