Seite 1 von 1
3D Winkelangaben
Verfasst: 24.04.2008 18:49
von TomTom
hiho!
ich nutze seit kurzem die 3D physik.
wenn ein Stein einen anderen berührt, dann drehen die sich ja weg...
wie kann ich denn die neuen Winkel berechnen, gibt es einen bestimmten Befehl dazu?
Vielen Dank!
Verfasst: 24.04.2008 22:03
von D4uS1
Wie meinst du das mit den Steinen. Generell sollte sowas mit der Trigonometrie (Cosinus, Sinus, Tangens) zu berechnen sein. Zu finden ist das in der Math Lib von PureBasic. Aber vorsicht, die Winkel sind in Bogenmaß und nicht im Gradmaß angegeben.
Schreib einfach mal ein paar Informationen was du genau machen willst.
lg
Andreas
Verfasst: 24.04.2008 22:13
von TomTom
hi Andreas!
also ich nutze die 3D Engine von Purebasic.
dort kann man mit hilfe des Befehls "EnableWorldPhysics(1)" die Physik einschalten.
jetzt habe ich einen 3D Würfel gebaut und den auf einen anderen 3D würfel fallen lassen...
sobald die beiden Würfel sich berühren, springt der erste Würfel weg (der 2te ist statisch).
also dreht der erste Würfel sich jetzt in eine von der Physik berechneten Winkel. Diesen Winkel möchte ich gerne herausfinden.
warum ich das herausfinden möchte:
ich möchte ein kleines Auto-Rennspiel proggen, und die Physik sieht sehr real aus...
jetzt benötige ich nur noch die neuen Winkel, und weiß dann, wo das Auto hinzeigt...
ich hoffe alle haben das verstanden wie ich das meine
MFG tomtom
Verfasst: 24.04.2008 22:18
von Andreas_S
http://www.purebasic.fr/german/viewtopi ... c&start=20
Dürfte ich das bsp. mit dem Würfel sehen? Würde mich interessieren wie das genau aussieht...
Andreas
Verfasst: 24.04.2008 22:34
von TomTom
hier kannste gucken ^^
Code: Alles auswählen
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
EnableWorldPhysics(1)
Add3DArchive("Data\", #PB_3DArchive_FileSystem)
Add3DArchive("moddels\", #PB_3DArchive_FileSystem)
Add3DArchive("skys\skybox.zip", #PB_3DArchive_Zip)
OpenScreen(1024,768,32,"Engine3D Test")
;:::::::::::Camera::::::::::::
CreateCamera(0,0,0,100,100)
CameraLocate(0,0,0,0)
;:::::::::::Camera ende:::::::
;:::::::::::Skybox::::::::::::
SkyBox("desert07.jpg")
;:::::::::::Skybox ende:::::::
;:::::::::::Würfel::::::::::::
LoadTexture(100,"cube_texture.jpg")
LoadMesh(100,"cube.mesh")
CreateMaterial(100,TextureID(100))
CreateEntity(1,MeshID(100),MaterialID(100))
CreateEntity(2,MeshID(100),MaterialID(100))
EntityLocate(2,0,-100,0)
RotateEntity(2,90,20,5)
ScaleEntity(1, 10, 10, 10)
ScaleEntity(2, 10, 10, 10)
EntityPhysicBody(1, #PB_Entity_BoxBody)
EntityPhysicBody(2, #PB_Entity_StaticBody)
MoveEntity(1,0,-10,0)
CameraLocate(0,0,0,200)
;::::::::::Würfel ende:::::::
WorldGravity(10)
Repeat
ExamineKeyboard()
ExamineMouse()
If KeyboardPushed(1):esc = 1:EndIf
If KeyboardPushed(#PB_Key_W):MoveCamera(0,0,0,-10):EndIf
If KeyboardPushed(#PB_Key_S):MoveCamera(0,0,0,10):EndIf
RotateCamera(0,-(MouseDeltaX()/10),-(MouseDeltaY()/10),0)
RenderWorld()
FlipBuffers()
Until esc = 1
du musst nur noch eine texture und einen würfel erstellen...
ich denke mal das schaffste
Verfasst: 24.04.2008 22:44
von Andreas_S
Ich hab den Robot von einem Tut genommen und der fliegt direkt durch den anderen durch...
Das mit der Rotations-Matrize verstanden? Kannst ja NicTheQuicks code für die Rechnungen mit den Matrizen nehmen...
Verfasst: 25.04.2008 13:00
von NicTheQuick
Andreas_S hat geschrieben:Kannst ja NicTheQuicks code für die Rechnungen mit den Matrizen nehmen...
Naja, für kleine 3x3-Matrizen braucht man nicht unbedingt meinen riesen
Code. Der ist außerdem nicht für Dinge geeignet, die schnell sein sollen.
Verfasst: 25.04.2008 21:18
von TomTom
danke für eure antworten, aber irgendwie habe ich es nicht so ganz verstanden wie ich das problem lösen kann
naja mir ist gerade aufgefallen, das die physik von PB nicht so ganz funktioniert...
ich habe eine kleine 3DHalle statisch erstellt und von oben 3D Würfel hinunter fallen lassen. daraufhin sind die Würfel auf den Boden aufgeschlagen und haben sich davon gedriftet (wie über eis).
Darauf hin habe ich die Reibung verändert mit dem Befehl
verändert (mit allen entitys).
jedoch sehe ich keine veränderung.
das komische ist, das meine Würfel langsam aber sicher durch den Boden durchfallen. Wenn ich die Masse der Würfel erhöhe fallen die auch schneller durch
was mache ich falsch?
MFG tomtom
[/code]