Zum Inhalt springen

3D Math ?


rub

Empfohlene Beiträge

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...