X, Y und Z Geschwindigkeit mit winkeln(sin/cos) ausrechnen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Xaymar

ehemals "Cgamer"

Betreff: X, Y und Z Geschwindigkeit mit winkeln(sin/cos) ausrechnen?

BeitragDo, Apr 09, 2009 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
kann mir wer erklären wie das direkt geht? ich weiß blitz hat ja moveentity usw, aber ich möchte das gernen selbst ausrechnen damit es auch in anderen sprachen funktioniert. bisher habe ich nur 2 winkel in X/Y/Z geschwindigkeit umrechenen können(Pitch, Yaw), aber das war auch nicht so perfekt. nun möchte ich 3 winkel(pitch, yaw, roll) haben. wie kann ich das nun angehen?
Warbseite

Xeres

Moderator

BeitragDo, Apr 09, 2009 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Uhm... Denkfehler meinerseits...
Embarassed

Edit:
Halt, stimmt doch:
X = X + Radius * Cos( Pitch ) * Cos( Yaw )
Y = Y + Radius * Sin( Yaw )
Z = Z + Radius * Sin( Pitch ) * Cos( Yaw )

Zwei winkel genügen um einen Punkt auf einer Kugel mit dem Radius zu berechnen. Also Hast du eine Geschwindigkeit die du für Radius einsetzt und Verschiebst dein Entity in die Richtung die durch die Winkel gegeben ist - oder?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Xaymar

ehemals "Cgamer"

BeitragDo, Apr 09, 2009 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Y = Y + Radius * Sin( Yaw )
ich verstehe diese zeile nicht:/ muss da nicht Pitch rein?

edit: danke habs jetzt. musste nen bisschen invertieren macht aber nichts
Code: [AUSKLAPPEN]
Function GetMov(Pitch#, Yaw#, Radius#)
   A$ = "x" + (Radius * Sin( Pitch ) * Sin( Yaw ))
   A$ = A$ + "y" + (Radius * -Sin( Pitch ))
   A$ = A$ + "z" + (Radius * Cos( Pitch ) * Cos( Yaw ))
End Function
Warbseite

Xaymar

ehemals "Cgamer"

BeitragMi, Jul 28, 2010 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß, der ist von 2009 aber es ist mein Thread.

Ich versuchte nun die Roll Rotation von Blitz mit einzubauen nur habe ich nicht wirklich eine Ahnung wie. bisherige versuche endeten immer darin, dass 90° Pitch 90° Roll(ausgehend von 0,1,0) nicht 0,0,1 ist.
BlitzBasic: [AUSKLAPPEN]
Global Math_GetSpeedV#[3]
Function Math_GetSpeed(Pitch#, Yaw#, Roll#=0)
Math_GetSpeedV[0] = Cos(Pitch) * Sin(Yaw+Roll)
Math_GetSpeedV[1] = Cos(Pitch+Roll)
Math_GetSpeedV[2] = Sin(Pitch+Roll) * Cos(Yaw+Roll)
End Function


Wie müsste die Rechnung richtig heißen? :/ Danke im vorraus
Warbseite

faeX

BeitragFr, Jul 30, 2010 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Für Blitz3D:
BlitzBasic: [AUSKLAPPEN]
; fPitch, fYaw, fRadius sind gegeben.
pivEntity% = CreatePivot()
RotateEntity pivEntity, fPitch, fYaw, 0
TFormVector 0, 0, fRadius, pivEntity, 0
fX = fX + TFormedX()
fY = fY + TFormedY()
fZ = fZ + TFormedZ()

Nur der Vollständigkeit wegen.

Xaymar

ehemals "Cgamer"

BeitragSa, Jul 31, 2010 1:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Weiß hier wirklich keiner wie die rechnung heißen muss?

@faeX:Ich redete von Roll. Und deine Funktion macht genau dasselbe wie die von Xeres gepostete. Nur in anderer form.
Warbseite

Xeres

Moderator

BeitragSa, Jul 31, 2010 1:26
Antworten mit Zitat
Benutzer-Profile anzeigen
In was oder wie willst du Roll einbauen?

Edit:
Wohl besser gefragt: Wozu? 2 Winkel sind absolut ausreichend. Ob Pitch und Yaw oder Yaw & Roll usw. ist prinzipiell egal.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Xaymar

ehemals "Cgamer"

BeitragSa, Jul 31, 2010 2:33
Antworten mit Zitat
Benutzer-Profile anzeigen
nunja, bei richtungs angaben ist roll egal, richtig. Allerdings brauche ich die rechnung mit Roll um seitwärts rotation richtig zu berechnen(L<>R)
Warbseite

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group