rub Geschrieben 31. August 2006 Teilen Geschrieben 31. August 2006 Hallo, Ich versuche mich gerade an DirektX und habe dort den Namespace Geometrie gefunden. Dort gibt es Funktionen, mit denen man prüfen kann, ob ein Objekt mit einer Geraden geschnitten wird (BoundinBoxProbe / BoundingSpare). Die Funktionen liefern einen Boolean zurück, der true ist, wenn die Gerade schneidet. Jetzt hätte ich aber gerne keinen Boolean, sondern den (ersten) Punkt, an dem die gerade schneidet, als Ergebnis. Hat mir da jemand einen Source für? (am besten in vb.net) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 31. August 2006 Teilen Geschrieben 31. August 2006 Besorge Dir doch die Flächen der Bounding Box oder den Radius der Bounding Sphere und rechne den Punkt selbst aus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rub Geschrieben 31. August 2006 Autor Teilen Geschrieben 31. August 2006 Hi, genau da liegt ja mein Problem. Ich weiß zwar, dass z.B. eine Gerade durch y = x*m+b deffiniert wird, aber 1. ist meine Gerade ja nicht unendlich (könnte man ja über If Then abfangen) und 2. Ich komme nicht darauf, wie ich den Algorithmus am besten umsetze(Prüfung ob parallel, ob die Gerade in z.B. einer Fläche liegt, nicht schneidet, oder schneidet). Hast Du mir vielleicht ein Bsp. Vorerst will ich erstmal eine Fläche der Box prüfen. Später will ich dann dementsprechend über die Normalen der Flächen ermitteln, welche ich schneiden muss. PS: Momentan benutze ich keine Bounding-Elemente, besitze aber eine theoretische Box in Form von den Angaben der Eckpunkte der Box. Also ich habe momentan eine Box und eine Gerade. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 31. August 2006 Teilen Geschrieben 31. August 2006 Ich weiß zwar, dass z.B. eine Gerade durch y = x*m+b deffiniert wird, aber 1. ist meine Gerade ja nicht unendlich (könnte man ja über If Then abfangen) Graden sind in ihrer Ausdehnung immer unendlich. Wenn Du zusätzlich einschränken möchtest, dass Du nur an Schnittpunkten interessiert bist, die auf einem bestimmten Abschnitt der Graden liegen, dann musst Du dies nach dem Ermitteln des Schnittpunktes (bzw. nach dem Ermitteln des Parameters in der Gradengleichung) überprüfen. Vorerst will ich erstmal eine Fläche der Box prüfen. Zuerst musst du den Schnittpunkt der Graden mit der Ebene bestimmen. Dies kannst Du z.B. machen, indem Du die Gradengleichung in die Normalenform der Ebengleichung einsetzt. Für die Sonderfälle der Graden in der Ebene bzw. der Graden neben der Ebene (ohne, dass sie sich scheiden) bekommst Du keine eindeutige bzw. keine Lösung heraus. Sobald Du den Punkt hast, musst Du nur noch überprüfen, ob er im Bereich eines Polygons liegt. Dies kann man allgemein für beliebige Polygone machen. Für Deinen speziellen Fall des Rechtecks ist es evtl. leichter den Punkt ein 2D-Koordinatensystem in der Ebene des Rechtecks zu transformieren und dort zu prüfen, ob sich der Punkt noch im Bereich des Rechtecks befindet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.