Tokamak relative Kräfte [Gelöst]
Übersicht

![]() |
Lord_VaderBetreff: Tokamak relative Kräfte [Gelöst] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
seit langem mal wieder am rumprobieren mit Tokamak. Jedoch gibt es ein kleines Problem bezüglich tokrb_applyimpulse. Applyimpulse gibt nur einen Impuls in Absoluten koordinaten an. Ich will aber relativ zur richtung des objekts eine kraft wirken lassen. Genau das gleiche mit der drehung. Gibt es eine Lib die das Umrechnet oder komme ich mit iwelchen Blitzbefehlen aus? MfG Vader |
||
- Zuletzt bearbeitet von Lord_Vader am Mi, Aug 20, 2014 22:30, insgesamt einmal bearbeitet
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke, TFormVector könnte dir damit helfen. Damit kannst du einen Vektor in Object Space transformieren.
Wenn du dem einen Vektor mit (0,0,1) gibst, solltest du den Forward-Vector für dein Objekt bekommen. (1,0,0) macht dir den Right-Vector und (0,1,0) gibt dir den Up-Vector. Für die Rotationen bräuchtest du dann Matrix-Rechnung. Das ist nicht schwer, wenn man sich das mal angeschaut hat, und lässt sich auch recht gut programmieren. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey,
ja danke also das mit den richtungen funktioniert einwandfrei! Mit der drehung muss ich mal gucken. Hab probiert das ganze über sin und cos zu lösen... Würde auch einfach sein wenn man nicht nach pitch->yaw und yaw->roll das gleiche ergebniss bekommen könnte ![]() Mal sehen ob ich iwelche tutorials finden kann dazu. MfG Vader |
||
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
So habe das Ganze mal gelöst. Wenn auch mit viel rechenleistung, geht noch einfacher. Aber so gehts ![]() Poste das ganze nochmal im Codearchiv. MfG Vader Code: [AUSKLAPPEN] Global relpiv=CreatePivot()
;Relative Kraft Function relforce(rb,x#,y#,z#) Local xf#=0,yf#=0,zf#=0 setpivot(rb) ;In X-Richtung TFormNormal 1,0,0,relpiv,0 xf# = xf# + TFormedX() * x# yf# = yf# + TFormedY() * x# zf# = zf# + TFormedZ() * x# ;In Y-Richtung TFormNormal 0,1,0,relpiv,0 xf# = xf# + TFormedX() * y# yf# = yf# + TFormedY() * y# zf# = zf# + TFormedZ() * y# ;In Z-Richtung TFormNormal 0,0,1,relpiv,0 xf# = xf# + TFormedX() * z# yf# = yf# + TFormedY() * z# zf# = zf# + TFormedZ() * z# TOKRB_ApplyImpulse(rb,xf#,yf#,zf#) End Function ;Relatives Drehen Function relturn(rb,pitch#,yaw#,roll#) Local xf#,yf#,zf# setpivot(rb) ;X-Richtung (Yaw) TFormNormal 1,0,0,relpiv,0 xf# = TFormedX() * yaw# yf# = TFormedY() * yaw# zf# = TFormedZ() * yaw# TFormPoint 0,0,1,relpiv,0 ;Angriffspunkt TOKRB_ApplyImpulse2(rb,xf# * 0.5,yf# * 0.5,zf# * 0.5,TFormedX(),TFormedY(),TFormedZ()) TFormPoint 0,0,-1,relpiv,0 ;Angriffspunkt (Gegenüber, sonst drift) TOKRB_ApplyImpulse2(rb,xf# * -0.5,yf# * -0.5,zf# * -0.5,TFormedX(),TFormedY(),TFormedZ()) ;In Y-Richtung (Pitch) TFormNormal 0,1,0,relpiv,0 xf# = TFormedX() * pitch# yf# = TFormedY() * pitch# zf# = TFormedZ() * pitch# TFormPoint 0,0,1,relpiv,0 ;Angriffspunkt TOKRB_ApplyImpulse2(rb,xf# * 0.5,yf# * 0.5,zf# * 0.5,TFormedX(),TFormedY(),TFormedZ()) TFormPoint 0,0,-1,relpiv,0 ;Angriffspunkt (Gegenüber, sonst drift) TOKRB_ApplyImpulse2(rb,xf# * -0.5,yf# * -0.5,zf# * -0.5,TFormedX(),TFormedY(),TFormedZ()) ;In Z-Richtung (roll) TFormNormal 0,-1,0,relpiv,0 xf# = TFormedX() * roll# yf# = TFormedY() * roll# zf# = TFormedZ() * roll# TFormPoint 1,0,0,relpiv,0 ;Angriffspunkt TOKRB_ApplyImpulse2(rb,xf# * 0.5,yf# * 0.5,zf# * 0.5,TFormedX(),TFormedY(),TFormedZ()) TFormPoint -1,0,0,relpiv,0 ;Angriffspunkt (Gegenüber, sonst drift) TOKRB_ApplyImpulse2(rb,xf# * -0.5,yf# * -0.5,zf# * -0.5,TFormedX(),TFormedY(),TFormedZ()) End Function Function setpivot(rb) PositionEntity relpiv,TOKRB_GetX(rb),TOKRB_GetY(rb),TOKRB_GetZ(rb) RotateEntity relpiv,TOKRB_GetPitch(rb),TOKRB_GetYaw(rb),TOKRB_GetRoll(rb) End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group