SAT Problem
-
Dreiecke sind konvex, daher "funktioniert" SAT mit Dreiecken immer. Muss ein Problem mit deiner Implementierung sein...
-
Nachdem ich die Sat einige zeit lang mit stift und papier ausprobiert und bewiesen hab, dass es doch funktioniert, hab ich hab eine Ewigkeit über dem Code gessesen und tatsächlich einen fehler gefunden.
es scheint nun zu funktionieren.Dann noch eine ganz andere Frage: lässt sch sat auch für 3d implentieren? und wenn ja, wie?
-
Ja lässt er sich. Funktioniert dort ganz gleich, statt einer Gerade hast du dort dann eben eine Ebene...
-
das is ja der knackpunkt, wie berechne isch das mit einer ebene?
-
Wo genau liegt das Problem?
-
schon gut, ich hol mir etwas Geometrie-Nachhilfe und meld mich dann wieder, wenn ichs nicht gecheckt hab.
Hatte eigentlich gehofft das ich das Zeug nie wieder brauchen würd.
-
okay, jetzt hab ichs gechekt, mein programm funktioniert, ich bin bereit für eine weitere Dimension.
also wie läuft das nun mit einer ebene, oder muss ich alle seiten prüfen?
-
ist die normale einfach ein 3d Vektor?
-
alterbro schrieb:
okay, jetzt hab ichs gechekt, mein programm funktioniert, ich bin bereit für eine weitere Dimension.
also wie läuft das nun mit einer ebene, oder muss ich alle seiten prüfen?das wuerde nicht ausreichen, du musst theoretisch jede kante von objekt A mit jedem punkt von objekt B als grundlage deiner ebene probieren (und umgekehrt).
-
verstehe ich nicht, was heisst auf grundlage der ebene?
-
alterbro schrieb:
verstehe ich nicht, was heisst auf grundlage der ebene?
eingangsdaten um eine ebene zu berechnen
-
könntest du mir da mal beispiel machen, irgendwie verstehe ich das nichtg.
ist die ebene dann die normale auf die die punkte des polyeders projiziert werden?
-
ich leite dich gerne an, erster schritt, mach eine funktion die eine ebenengleichung zurueckgibt.
-
okay das mit der 3d Normale?
OK ist gemacht
danke
-
also du meinst das, oder?
http://www.wynx.de/ButcherC/EuEHNF.htmEine Viereckige Ebene, die Senkrecht zur eigentlichen fläche des Polyeders ist?
-
Hätte ich sie posten sollen?
float ebenengleichung(Vector n,Vector q){ return n*q; } inline float operator * (const Vector &V)const {return (x*V.x) + (y*V.y); }
-
ich habe so meine zweifel dass das irgendwas mit ebenengleichung zu tun hat.
versuch von einem dreieck, also aus 3 vertices im 3D raum (also x y und z) die ebene zu errechnen.
-
ich google jetzt schon seit einer ewigkeit.
könntest du mir einen kleinen Tipp geben?
-
ich glaub ich habs fast,nur weiss ich nicht was hier s und t bedeuten.
http://home.arcor.de/penneweb/Abi2004/Eb3Pkt.html
-
ich bin mir nicht sicher, aber meinst du das?:
inline Vector operator - (const Vector &V) const { return Vector(x-V.x, y-V.y); } inline Vector operator * (float s) const { return Vector(x*s, y*s); } Vector ebengleichung(float r, float s,Vector a,Vector b,Vector C){ vector retval; retval=a+r*(b-a)+s*(c-a); }
Tut mir leid, dass ich so langsam bin, ich könnte den Teil von mir, der früher in Geometrie gepennt hat, den Schädel einschlagen.