Bogen zwischen 2 Punkten berechnen



  • Ich brauche Hilfe, ich hab folgendes Problem: Ich hab 2 beliebige Punkte im 3D-Raum, diese 2 Punkte sind durch einen Bogen zu verbinden, der Bogen stellt dabei genau 1/4 eines Kreises dar, nun ist meine Frage wie kann ich diesen Bogen berechnen? Die anzahl der Vertexe aus denen der Bogen besteht soll dabei variabel sein. Ich hab schon die Suchen-Funktion benuzt aber nix gefunden. Ich wäre schon für einen Lösungsansatz dankbar, weil ich keine Ahnung hab wie ich das Problem lösen soll.



  • Im 3D-Raum dürfte es unendlich viele Möglichkeiten geben (in 2D nicht, da Du ja festlegst, dass es genau ein Viertelkreis sein soll, dort gibt es nur zwei Möglichkeiten). Aber in 3D könnte der Kreis beliebig um die Verbindungslinie der beiden Punkte gedreht sein... such mal was über Spline-Interpolation, das könnte Dir helfen. Es gibt da eine Methode, wo man jedem Punkt eine Tangente an die Kurve zuweist. Wenn Du dann die Tangenten so wählst, dass sie im 90°-Winkel zueinander stehen, müsste eigentlich ein Viertelkreis dabei herauskommen!

    [ Dieser Beitrag wurde am 01.06.2003 um 13:02 Uhr von TomasRiker editiert. ]



  • Das wird so und so nicht klappen, bei nur zwei Punkten fehlt einfach die Ausrichtung. Du musst irgendwie einfach noch die Ausrichtung der Ebene auf der es liegt festlegen (3. Punkt reicht). Wenn du die Ebene hast, ist es ja trivial, Finde einfach das Quadrat auf dessen gegenüberliegenden Ecken die Punkte liegen, die anderen beiden Eckpunkte sind potentielle Mittelpunkte des Viertelkreises.



  • Darum schrieb ich ja, er solle eine Interpolation mit Hilfe von Tangenten durchführen! Da reichen dann auch zwei Punkte! Wie gesagt: wenn die Tangenten im 90°-Winkel zueinander stehen, müsste ein eindeutiger Viertelkreis dabei heraus kommen...

    Die Funktion D3DXVec3Hermite kann solche Splines berechnen. Sie ist Teil der D3DX-Library. Sie erwartet sechs Parameter:

    1. Ausgabevektor
    2. Position von Punkt A
    3. Tangente an die Kurve in Punkt A
    4. Position von Punkt B
    5. Tangente an die Kurve in Punkt B
    6. Interpolationswert (von 0 bis 1, um den Ort auf der Kurve zu beschreiben)

    [ Dieser Beitrag wurde am 01.06.2003 um 15:03 Uhr von TomasRiker editiert. ]



  • Die Tangente definieren dann ebenso eine Ebene, das ist richtig, aber dieses Vorgehen garantiert keinen Viertelkreis. Hier wäre der Trick die richtigen Tangenten zu finden und diese liegen auf den Seiten oben genannten Quadrates.



  • Ja, stimmt. Irgendeine Angabe braucht man in jedem Fall.


Anmelden zum Antworten