Kugel richtig drehen
Übersicht

![]() |
TheProgrammerBetreff: Kugel richtig drehen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.
Ich habe eine Kugel, die ich flüssig drehen möchte... Der Code: Code: [AUSKLAPPEN] Graphics3D 640,480,16,2 SetBuffer BackBuffer() cam = CreateCamera() PositionEntity cam,0,0,-10 piv = CreatePivot() ent = CreateSphere(8,piv) ScaleEntity ent,2,2,2 PositionEntity ent,0,0,0 WireFrame 1 speed# = 1 Repeat Cls RenderWorld() speed# = 2 ; -=1. Möglichkeit=- ;CameraProject(cam,EntityX(ent),EntityY(ent),EntityZ(ent)) ;a_tan# = ATan2(MouseX()-ProjectedX(),MouseY()-ProjectedY()) ;RotateEntity ent,pitch#,yaw#,0 ;yaw# = yaw# + Sin(a_tan)*speed# ;pitch# = pitch# + Cos(a_tan)*speed# -=2. Möglichkeit=- CameraProject(cam,EntityX(ent),EntityY(ent),EntityZ(ent)) winkel# = ATan2(MouseX()-ProjectedX(),MouseY()-ProjectedY()) RotateEntity piv,0,0,winkel# TurnEntity ent,-speed#,0,0 Flip Until KeyHit(1):End Hier sind zwei Möglichkeiten der Drehung. Eine funzt, sieht aber hässlich aus, da sich die Kugel auf einer Linie bewegt. Die andere würde besser aussehen, wenn sie funzen würde. Die Kugel wird da aber völlig verdreht, dass die Drehachsen ganz woanders liegen. Hat vieleicht jemand ne Idee, wie man die Drehung richig realisieren kann? Ich hoffe, mir kann jemand helfen. Mfg TheProgrammer |
||
aktuelles Projekt: The last day of human being |
Nobody-86 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmm... weis ich jetzt auch nciht so richtig, aber wozu soll das den gut sein? vieelciht gibt es eine ganmz andere lösung. | ||
(: ---> nobody is perfect <--- ![]() |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
das soll halt so'ne rollende Murmel darstellen,
die sich physikalisch richtig drehen soll. |
||
aktuelles Projekt: The last day of human being |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
meinst du sowas?
Code: [AUSKLAPPEN] Graphics3D 640,480,16,2 SetBuffer BackBuffer() cam = CreateCamera() PositionEntity cam,0,0,-10 piv = CreateCube() ent = CreateSphere(8,piv) ScaleEntity ent,2,2,2 PositionEntity ent,0,0,0 WireFrame 1 speed# = 1 Repeat Cls RenderWorld() speed# = 2 m=1 If m=1 Then CameraProject(cam,EntityX(ent),EntityY(ent),EntityZ(ent)) divy# = MouseY() - GraphicsHeight()/2 divx# = MouseX() - GraphicsWidth()/2 mag# = Sqr(divx^2 + divy^2) divx = divx/mag divy = divy/mag opitch# = EntityPitch(ent,1) oyaw# = EntityYaw(ent,1) oroll# = EntityRoll(ent,1) AlignToVector piv,divy,divx,0,1 RotateEntity(ent,opitch#,oyaw#,oroll#,1) TurnEntity piv,-mag/100,0,0 ElseIf m=2 Then ; -=1. Möglichkeit=- CameraProject(cam,EntityX(ent),EntityY(ent),EntityZ(ent)) a_tan# = ATan2(MouseX()-ProjectedX(),MouseY()-ProjectedY()) RotateEntity ent,pitch#,yaw#,0 yaw# = yaw# + Sin(a_tan)*speed# pitch# = pitch# + Cos(a_tan)*speed# Else ; -=2. Möglichkeit=- CameraProject(cam,EntityX(ent),EntityY(ent),EntityZ(ent)) winkel# = ATan2(MouseX()-ProjectedX(),MouseY()-ProjectedY()) RotateEntity piv,0,0,winkel# TurnEntity ent,-speed#,0,0 End If Flip Until KeyHit(1):End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group