Schnitt zweier Dreiecke - ppilihp-k/mycppmath GitHub Wiki

Der Schnitt zweier Dreiecke besteht aus 3 Elementen.

1. Teste, ob sich die Dreiecke schneiden können. Schneide zwei die jeweiligen Dreiecke umgebene Kugeln.

Ein schneller Test, um festzustellen, ob sich die Dreiecke nahe genug sind, um sich zu schneiden, besteht darin, eine Kugel um die Dreiecke zu legen und dann zu schneiden, falls nötig. So werden aufwendigere Rechenschritte vermieden.

2. Teste, ob sich die Ebenen schneiden, die durch die Dreiecke aufgespannt werden.

Schneiden sich die Kugeln, so kann es sein, dass sich die Dreiecke schneiden, sie müssen es jedoch nicht unbedingt. Deshalb ein weiterer Test. Getestet wird nun die Lage der durch die Dreiecke aufgespannten Ebenen. Sind diese parallel, so schneiden sich die Dreiecke nicht, sondern liegen nur dicht beieinander. Sind sie jedoch "identisch" oder schneiden sich, so muss das Verfahren fortgeführt werden.

3. Wenn sich die Ebenen schneiden, so schneide die betroffenen Strecken (Kanten der Dreiecke) mit den Ebenen, um die Schnittpunkte zu erhalten und teste, ob diese im jeweils anderen Dreieck liegen.

Im letzten Schritt ist immer noch nicht klar, ob sich die Dreiecke denn nun wirklich schneiden. Jetzt werden die Schnittpunkte der durch die Kanten der Dreiecke dargestellten Strecken mit der jeweils anderen Ebene berechnet. Zu guter Letzt muss getestet werden, ob die Schnittpunkte innerhalb eines Dreiecks liegen. Es entsteht dann eine Schnittstrecke.


Hier ist ein simples Ablaufdiagramm für das Verfahren: