Winkelverhältnisse von Objekten im dreidimensionalen Raum ermitteln

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Winkelverhältnisse von Objekten im dreidimensionalen Raum ermitteln

    Hallo Forum-Members,

    für eine Physiksimulation muss ich die Winkelverhältnisse zwischen zwei Objekten im dreidimensionalen Raum berechnen.

    Ich habe Zwei Objekte, für die mir jeweils ihre X-, Y-, und Z-Koordinate als Double vorliegen.
    Weiterhin beinhalten sie deren jeweilige Lage im Raum, ebenfalls in drei Eigenschaften als Roll-, Nick-; und Gierwinkel, im anglophonen sprachraum auch als Roll, Pitch und Yaw bezeichnet.
    Schließlich habe ich noch die Eigenschaften Masse, und Beschleunigungsmoment so wie die aktuelle Geschwindigkeit implementiert.

    Meine zu erschaffende Klasse soll nun Methoden für diverse Abfragen besitzen:
    - Abstand der Punkte im Koordinatensystem (Hab ich schon gelöst)
    - Drehungen um die drei Achsen, in Winkelgrad, die es benötigt, das sich bewegende Objekt1 auf das feststehende Objekt 2 auszurichten.
    - Abfrage, welche Seite des Objektes 2 meinem in Bewegung befindlichen Objekt 1 gerade zugekehrt ist. (ich gehe von Kugelförmigen Objekten aus, die sich literal gesprochen in Bauch, Kopf, Rücken so wie rechte und linke nebst Hinterseite gliedern.
    - Abfrage, wie lange es in abhängigkeit der aktuellen Geschwindigkeit braucht, unter Berücksichtigung der aktuellen Masse das Objekt auf eine Geschwindigkeit X zu bringen.

    Für Hilfe und Anleitung zur Implementierung bin ich sehr dankbar.
    Es sollen nur native VB.Net Bestandteile verwendet werden, keine Drittanbieter-Frameworks für 3d-Objekte wie DirectX oder vergleichbar, da es sich um keine grafische Anwendung handelt.

    Für Eure Hilfe bedanke ich mich schon mal im Voraus.

    LG

    Richard
    Für mich ist deine Frage zu dem Winkelverhältnisse von Objekten nicht eindeutig genug.
    Meinst du den Winkel zwischen den Stützvektoren oder den Winkel zwischen zwei definierten Kanten der Objekte zueinander?
    Von was für Objekten sprichst du?
    Ich habe keine Ahnung wie deine Problem im Bereich der Spieleprogammierung gelöst wird - vermutlich aber über Abbildungsmatritzen/Drehmatrizen. (Niveau vermutlich Uni-Mathematik)
    Die Formel für die Berechung des Winnkels zwischen zwei Vektoren findest du aber schon in jedem Mathe-Sek2-Schulbuch (Niveau Schul-Mathematik) ;)
    Link: matheguru.com/lineare-algebra/…ischen-zwei-vektoren.html
    Welche Vorbildung hast du und kann dein Problem nicht vielleicht doch etwas vereinfacht werden - also nicht die eierlegende Wollmilchsau?

    Vielleicht sind auch diese Links für dich interessant:
    [OpenSource] MathUtils 2.4.3 - erweiterte Mathematikbibliothek
    Punktewolke 3D darstellen und drehen

    Am Ende des Tages bin ich leider nicht der richtige Ansprechpartner für dich, da dies nicht mein Fachgebiet ist. Bin nur etwas neugierig ;)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „egon“ ()

    @Tschapajew Willkommen im Forum. :thumbup:
    Zunächst solltest Du Dich mit diesen Winkeln befassen.
    Üblicherweise sollten das die Eulerwinkel sein: de.wikipedia.org/wiki/Eulersche_Winkel
    Dann nimm eine ordentliche Vektor-Klasse: msdn.microsoft.com/de-de/libra…d.vector3d(v=vs.110).aspx
    oder Vektoren
    Da sollten die Tücher bereits im Trockenen liegen. ;)
    Wichtig ist, dass Ihr, Du und Dein Dozent, mit derselben Winkeldarstellung rechnet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!