Schnittpunkt Gerade und Ebene
Übersicht

![]() |
FoppeleBetreff: Schnittpunkt Gerade und Ebene |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
wenn jemand mathematisch fit ist wäre es sehr schön wenn er mir bei folgendem Problem helfen könnte: Ich will mir ein modifiziertes LinePick bauen. Normales LinePick gibt ja immer die erste Pickable Entity zurück, die getroffen wird. Ich will aber nicht irgendeine, sondern eine ganz bestimmte, genauergesagt ein einzelnes triangle. Ich brauche also eine Formel um den Schnittpunkt einer Geraden mit einer von 3 Punkten aufgespannten Ebene zu berechnen. So weit so gut, die Formel zu finden war nicht schwer, sie verstehen dagegen sehr ![]() Geschweige denn die Formel so umzubauen dass ich am Ende das Ergebnis habe. Ihr seht schon, die letzten Jahre Mathe sind anscheinend spurlos an mir vorübergezogen ( ist aber auch schon ein paar Jährchen her). Hat jemand 'nen Link mit für Doofe verständlicher Erklärung oder gar die Geduld, es mir kurz zu erklären? Gegeben sind 3 Punkte für das Triangle sowie ein Startpunkt und ein Richtungsvektor für das LinePick. [EDIT] Ich habe gerade gemerkt, ich brauche nicht den schnittpunkt mit einer Ebene sondern mit dem Triangle, was eine andere Formel wäre. Ich brauche auch nicht mal zwingend den Schnittpunkt sondern muss nur wissen ob es einen Schnittpunkt gibt oder nicht. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So wie zb ql:pickedtriangle ?
Und dafür gibts keine "Erklärung für Dumme" Entweder du bist Fit in Vektor Mathe und Geraden - Flächen Gleichungen oder der Tunnel wird sehr lang bis Licht am Ende kommt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Foppele |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ich brauche sowas wie PickedTriangle, das normale LinePick geht nicht aus folgendem Grund:
Es gibt mehrere Entities die pickable sind, ich will aber checken ob ein ganz bestimmtes gepicked wird. Dabei darf mir aber keins von den anderen in den Weg kommen. In Vektor Mathe hab ich schon so einige Fortschritte gemacht ![]() P.S. Du verstehst es echt einem Mut zu machen ![]() |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Schnittpunktberechung Linie/Polygon geht eine Schnittpunktberechnung Linie/Ebene voraus.
Nachdem du den Schnittpunkt auf der Ebene berechnet hast, musst du noch feststellen, ob der Punkt innerhalb der Strecken liegt, die das Triangle umschliessen. Dafür ist die Hessesche Normalform ganz praktisch, wenn du die Berechnungen einschränken willst. Zuerst schauen, ob der Punkt auf der richtigen Seite der Linie liegt, bevor du eine genauere Berechnung durchführst, das spart Berechungszeit. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Foppele hat Folgendes geschrieben: Ja, ich brauche sowas wie PickedTriangle, das normale LinePick geht nicht aus folgendem Grund:
Es gibt mehrere Entities die pickable sind, ich will aber checken ob ein ganz bestimmtes gepicked wird. Dabei darf mir aber keins von den anderen in den Weg kommen. Wo ist da das Problem? Einfach LinePick und wenn du auf etwas pickst, einfach vom entsprechenden Punkt aus nochmal picken (ein wenig weiter versetzen), bis du weiter gepickt hast als die objekte auseinander waren. zb. Deine variante wird nicht besser geschwindigkeitsmässig sondern potentiell viel langsamer, denn ebenen gleichungen etc mit blitz3d lösen wird nicht gerade "die schnelle Sache", da Mark leider die Matrizenbefehle nie rausgegeben hat um wirklich was gegen Matrizen zu transformieren. EDIT: Einzige Ausnahme sei hier wenn du deine Lösung mit TForm umsetzen kannst, das wär schnell |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
- Zuletzt bearbeitet von Dreamora am Mo, Dez 10, 2007 23:42, insgesamt einmal bearbeitet
![]() |
Foppele |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, die Idee kam mir schon aber ich dachte anders wär's eleganter. Ich hab den mathematischen Ansatz inzwischen geschnallt, auch wie man einfach testen kann ob das Triangle getroffen wird. Aber leider hänge ich noch bei der Auflösung des linearen Gleichungssystems zur Schnittpunktbestimmung...
...danke für die Denkanstösse, ich werd dann doch LinePick benutzen. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab dir oben noch was angefügt weils vielleicht ein wenig sehr hart geklungen hat. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seite für alle derartigen Probleme und noch mehr: http://www.realtimerendering.com/int/ (leider viele tote Links)
Ansonsten gibt es auch immer Sources auf BB.com http://www.blitzbasic.com/code...p?code=942 |
||
MrKeks.net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group