Kreisbahn im 3D Raum berechnen (Kamera und Entity)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Kreisbahn im 3D Raum berechnen (Kamera und Entity)

Beitrag von Makke »

Hallo,

ich habe folgendes vor. Mit der 3D Engine von Purebasic will ich ein Entity direkt vor der Kamera immer anzeigen. Durch bewegen der Maus (Rechts-Links und Rauf-Runter) wird die Kamera geschwenkt (rotiert), dabei soll das Entity immer an der gleichen Stelle vor der Kamera angezeigt werden. Das versuche ich über eine Kreisbahnberechnung zu lösen, hier der Code:

Code: Alles auswählen

cpradiusz = Player\pos\z - Player\cam\z ;=4000
cpradiusy = Player\pos\y - Player\cam\y ;=0
cpradiusx = Player\pos\x - Player\cam\x ;=0

; Player\camangle\x + y + z sind Winkelangaben 0-359 Grad; x = Rauf oder Runter, y = Links oder Rechts

RotateCamera(#Cam_Main, Player\camangle\x, Player\camangle\y, 0, #PB_Absolute)
  
Player\pos\x = CameraX(#Cam_Main) + (cpradiusz * Sin(Radian(Player\camangle\y)))
Player\pos\y = CameraY(#Cam_Main) + (cpradiusz * Sin(Radian(Player\camangle\x)))
player\pos\z = CameraZ(#Cam_Main) + (cpradiusz * Cos(Radian(Player\camangle\x)) * Cos(Radian(Player\camangle\y)))
Alle Variablen sind Floats. Wenn ich die Maus nur rechts oder links oder oben oder unten bewege funktioniert das auch wunderbar. Wenn ich aber nach links und unten schwenke funktioniert das nicht mehr. Ich bin ratlos und würde mich über Hilfe freuen.

Ich habe auch schon mit der Kameraposition und dem Richtungsvektor (CameraDirectionX()) rumprobiert, evtl. ließe sich das darüber lösen, aber ich habe bisher nur rumprobiert.

Danke schonmal für alle Hinweise.
---
Windows 11 (64 bit)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Kreisbahn im 3D Raum berechnen (Kamera und Entity)

Beitrag von STARGÅTE »

Sowas musst du garnicht selbst berechnen, du kannst einfach ein Node erstellen, in welches du die Camera und das Entity einbindest.
Danach rotierst du einfach das Node (als wäre es die Camera) und das Entity kommt mit.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: Kreisbahn im 3D Raum berechnen (Kamera und Entity)

Beitrag von Makke »

@Stargate:

1. Danke für diese wirklich gute und einfache Lösung
2. Gut das Du mein Gesicht beim lesen Deines Beitrages gesehen hast, also nochmal danke
---
Windows 11 (64 bit)
Antworten