Kamera winkel ausrechnen im 3D Raum

  • Ich hab jetzt schon stunden gegoogelt aber finde keine lösung das ganze in Autoit umzusetzen

    Ich habe 2 Punkte im 3D raum zum einen die Kamera zum anderen den punkt wo ich hinschauen möchte, nur bekomm ich immer falsche Ergebnisse raus

    Hier ein Bild zum verständnis was ich suche

    [Blockierte Grafik: https://image.ibb.co/icmVLw/camera.png]

    hier ist der Code den ich schon testweise habe

    Einmal editiert, zuletzt von Tyzer (11. November 2017 um 11:53)

  • Um die Frage abschließend zu klären fehlen ein paar wichtige Infos.

    Vor allem wie denn deine eingezeichneten Winkelangaben im Koordinatensystem liegen.

    Sprich: In welche Richtung zeigt denn die X bzw. Y-Achse?

    Ansonsten sagst du dass du falsche Ergebnisse erhälst.

    Was ist konkret falsch daran?

    Was wären denn die richtigen Ergebnisse?

    Mit den bisherigen Angaben und ein paar notwendigen Annahmen meinerseits hätte ich so angefangen:

  • hier ist der Code den ich schon testweise habe

    Keine Lösung für dein Problem, aber ein kleiner Hinweis zur verwendeten Syntax :

    Innerhalb der Funktion _NullifyCoord deklarierst Du globale Variablen. Das ist etwas, dass man grundsätzlich vermeiden sollte, auch wenn es die Lauffähigkeit des Skriptes nicht notwendigerweise einschränkt.

    Du kannst ja spaßeshalber mal folgendes Testskript ausführen :

    Dieser Warnhinweis läßt sich, soweit ich weiß, zwar abschalten, trotzdem ist diese Vorgehensweise nicht empfehlenswert.

    Solltest Du allerdings mit dem Skript von AspirinJunkie weitermachen, dann ist dieser Punkt bereits erledigt.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Wow der Code funktioniert schon wunderbar, das Ergebnis ist nahezu komplett richtig

    Bei den Coordinaten die du verwendet hast kommt das raus

    Yaw: 45°

    Pitch: 35.26°

    richtig halber müsste es aber so sein

    Yaw: 135°

    Pitch: -35.26°

    bei Pitch müsste ich das ganze also einfach *(-1) rechnen aber bei Yaw bin ich mir nicht so sicher, wenn ich immer +90 hinzufüge wirds wohl nicht ganz stimmen, ihr habt doch bestimmt ne bessere Lösung als +90 oder? :D

  • Danke danke ich weis das ganze war sehr unordentlich geschrieben, in meinen richtigen Programmen mach ich das normal auch nicht ganz so :p nur bei Testscripts wo man schnell mal was ändert und rumexperimentiert bis man es zum laufen bekommt kann das schnell unordentlich aussehen :D

  • aber bei Yaw bin ich mir nicht so sicher, wenn ich immer +90 hinzufüge wirds wohl nicht ganz stimmen, ihr habt doch bestimmt ne bessere Lösung als +90 oder?

    Naja +90 ist schon ok. Aber dann folgt noch eine Bereichsabfrage, damit man die daraus entstehenden Fälle über 180° korrekt behandelt.

    Da es aber 90°-Differenzen zum normalen Arkustangens sind, kann man alternativ auch durch entsprechendes umstellen der Parameter von atan2 eine Drehum um 90° erreichen.

    Entspricht dies dem was du erreichen möchtest?:

    Einmal editiert, zuletzt von AspirinJunkie (12. November 2017 um 10:02)

  • Naja +90 ist schon ok. Aber dann folgt noch eine Bereichsabfrage, damit man die daraus entstehenden Fälle über 180° korrekt behandelt.

    Da es aber 90°-Differenzen zum normalen Arkustangens sind, kann man alternativ auch durch entsprechendes umstellen der Parameter von atan2 eine Drehum um 90° erreichen.

    Entspricht dies dem was du erreichen möchtest?:

    Wow vielen vielen Dank :)

    Funktioniert einwandfrei :)