Punkt im Dreieck - Beweis?
-
Danke für die Hinweise - ich versuchs nochmal ;):
Gegeben sei ein Dreieck:
C +- / --- / -- / --- +-------------+ A B
Ein Punkt P in der Ebene des Dreiecks läßt sich darstellen durch:
Zu zeigen:
liegt im Dreieckliegt im Dreieck bedeutet:
function SameSide(p1,p2, a,b) cp1 = CrossProduct(b-a, p1-a) cp2 = CrossProduct(b-a, p2-a) if DotProduct(cp1, cp2) >= 0 then return true else return false function PointInTriangle(p, a,b,c) if SameSide(p,a, b,c) and SameSide(p,b, a,c) and SameSide(p,c, a,b) then return true else return false
-
Stimmt nicht. Setze α = -1 und β = 1 und es liegt nicht im Dreieck.
-
Vertexwahn schrieb:
Jemand eine Idee wie man das möglichst einfach beweisen kann?
dafür brauchst du eine definition von "im dreieck"
-
mist eigentlich wollte ich den Original-Beitrag unverändert lassen und einen überarbeiten neu posten - stattdessen habe ich den alten verändert - Die Antworten von Ben04 17 Mai 2009 17:33 und Dürer 17 Mai 2009 17:38 beziehen sich auf mein altes Posting!!!!
-
ist schon klar, was innerhalb bedeutet.
und nach Ben04s gegenbeweis ist dein beweis auch schon fertig, nämlich tot.
-
nach meiner Umformulierung ist jetzt Bens Gegenbeweis nicht mehr möglich
-
Na, dann setze doch P(a,b) in pointInTriangle ein..., wenn du a,b,a+b € [0,1] voraussetzt und exzessiven gebrauch von vektoridentitäten machst, sollte das ganze kein problem sein. http://wwwex.physik.uni-ulm.de/lehre/krm-2008-2009/node67.html
-
zeige einfach das der Punkt eine konvexe Linearkombination der Punkte A,B und C ist. das geht mit einem normalen 3x3 linearen Gleichungssystem:
$ \left(\begin{matrix} a\_x&b\_x&c_x \\a\_y&b\_y&c_y \\a\_z&b\_z&c_z \end{matrix}\right) \cdot \left(\begin{matrix} x_a \\x_b \\x_c \end{matix}\right) = \left(\begin{matrix} p_x \\p_y \\p_z \end{matix}\right) $wenn
$\|x\| = 1$, \\$0\leq x\_a,x\_b,x_c\leq1$dann konvexe Linearkombination
-
FreakyBKA schrieb:
Eins-Norm?
-
Eins-Norm ist richtig
-
Vielleicht gehts ja aich einfacher: Lege eine horizontale Gerade durch deinen Punkt und schneide sie mit den Kanten deines Dreiecks. Und jetzt zähl mal, wie viele Schnittpunkte rechts bzw. links von deinem Punkt liegen. Danach kannst du entscheiden, ob dein Punkt drinnen oder draussen ist. Das geht so übrigens auch für allgemeine (geschlossene und zusammenhängende) Polygone.
-
reden wir hier eigentlich von 2D oder 3D?
in 2D geht das so natürlich auch, ist aber auch nur in diesem Fall schneller.
im 3D Fall muss du die Gerade durch eine Ebene ersetzen und dann müsste man 2-3 3x3 Gleichungssysteme lösen, und da ist meine Variante sinnvoller (is ja nur 1 3x3 System).
-
Ein Dreieck ist gewöhnlich eben. Wenn es irgendwo im dreidimensionalen Raum schwebt, würde ich es einfach auf seine Ebene projizieren.