Hi,
wenn man wissen möchte aus welcher richtung ein Objekt kommt
ist ATAN() eine grosse Hilfe, nur muss man auch wissen wie man es einsetzt.
Hier ein kleines Beispiel:
// --------------------------------- //
// Project: Atan
// Start: Saturday, January 27, 2007
// IDE Version: 4.051
// Zwei bilder erstellen und laden
DRAWRECT 0,0,32,32,RGB(0x80, 0xff, 0x80)
GRABSPRITE 0,0,0,32,32
BLACKSCREEN
DRAWRECT 0,0,32,32,RGB(0xfc, 0x83, 0xb6)
GRABSPRITE 1,0,0,32,32
//Mainschleife
WHILE TRUE
// Mouskoordinaten zuweisen
MOUSESTATE mx,my,b1,b2
// Bild 0 hat eine feste Koordinate
DRAWSPRITE 0,300,250
// Bild 1 hängt an der Mousekoordinate
DRAWSPRITE 1,mx,my
// Mod((Atan(yBild0 - yBild1,xBild0 -xBild1)+360),360)
winkel = MOD((ATAN(250-my,300-mx)+360),360)
// Linie zu den Eckpunkten zeichnen
DRAWLINE 300,250,mx,my,RGB(255,0,0)
// Den Winke ausgeben
PRINT winkel,mx+38,my
SHOWSCREEN
WEND
So was kann man immer brauchen.:good:
By the way
SAVESPRITE und LOADSPRITE brauchst du in deinem Beispiel nicht mehr.
Du erstellst und schnappst dir ja dein Sprite mit FILLRECT und GRABSPRITE.;)
Cheers
...das mach' ich nur immer zum Testen, ob die Befehle richtig laufen :P
kann man das auch in 3D anwenden?
Und wenn ja wie, weil da ja nicht nur x und y, sondern auch z gegeben ist., was in meinem fall die blickrichtung ist.
Ja musste halt umschreiben
ich hab davon nur leider keinen plan, sicher mit phi, oder?
will das aufs entity system anwenden.
kannst mir ja nen kleinen denkanstoss geben, damit ich das dann allein hinbekomme.
ich glaub ich muss mich mal richtig mit winkeln beschäftigen.
Bin grad bei ein kleines Winkeltutorial zu schreiben, haben anscheined einige das Problem wie du :)
Fürs Programmieren sollte man halt immer gut in Mathe sein :P
is einfach schon zulange her, und naja ich hab mich früher immer um sin/cos/tan gedrückt, auch wenn ich damals wußte wie das geht.
war halt der meinung, dass ich das nicht brauchen werde, weil praktische anwendung war mir vor 10-12 jahren noch nicht wirklich klar.lol :S
und muss mich ja auch noch mit vektoren beschäftigen, da is ein beispiel in den samples unter /common/ , aber dort ist nix kommentiert, kann das wer erklären?
Hallo Heiko,
ich bin mir nicht sicher ob das so richtig ist, da ich von 3D so gut wie keinen Schimmer habe ;/
aber ich Denke es wird hie schon so in diese richtung gehen.
Wenn das so passt, sollten die Ausgaben die Winkel vom Objekt zur Kammera sein ?
:offtopic: Wie zur Hölle lass ich den Quader auf die Kamera zu bewegen :offtopic:
CreateCube_no_texture( 1,0)
WHILE TRUE
MOUSESTATE mx, my, b1 ,b2
phi=mx*360 / 640
X_MAKE3D 1,1000,45 // Viewport 3D
X_CAMERA 0, 150, -300, 0 ,0 ,0
X_AMBIENT_LT 0, RGB(255,255,0)
X_MOVEMENT mx-230, my-230, 0
X_SCALING 3, 3, 3
X_ROTATION phi*3, 0, 1, 0
X_DRAWOBJ 1, 0
// // Mod((Atan(yBild0 - yBild1,xBild0 -xBild1)+360),360)
winkel_xy_achse = MOD((ATAN(0-150,mx-230-0)+360),360)
winkel_xz_achse = MOD((ATAN(0-0,-300 - 0)+360),360)
winkel_yz_achse = MOD((ATAN(150-my-230,-300 - 0)+360),360)
X_MAKE2D
PRINT winkel_xy_achse,10,10
PRINT winkel_xz_achse,10,30
PRINT winkel_yz_achse,10,50
SHOWSCREEN
WEND
schau mal bei 3d code snippets, meine funktion hat noch fehler da, dürfte aber dein problem lösen, und du hast scheinbar mehr ahnung von winkelberechnungen, kannst ja mal schauen.
du könntest wenn es funktioniert den cube an der camera ausrichten und nur noch geradeaus bewegen lassen.
In 3D gibts nur 2 Winkel :noggin:
XY und XZ :whistle:
Quote from: D²O on 2008-Jun-11
:offtopic: Wie zur Hölle lass ich den Quader auf die Kamera zu bewegen :offtopic:
X_Movement mit Cos, Sin , Sin glaub war das aber nagel mich jetzt nicht fest :D
Schau mal in die Codeschnipsel, da hab ich ja eine Cam gemacht, das sollte dir evtl helfen .
mal eine frage am rande, was ist denn der unterschied zwischen ATAN und ATAN2?
=bahnhof
atan hat doch bei glb auch zwei argumente.....!
Pures Mathe Heiko :booze:
ich weiß, so ein bisschen steig ich inzwischen durch, bzw. fällt mir wieder ein.
Kannst du mal bei den 3D schnippseln schaun, dort kann doch nicht alles falsch sein, dass sich meine camera immer um Z im kreis dreht, egal was ich mach.
Das muss entweder an mir oder an dem ES liegen.grübel...
:offtopic:
Quote from: Heiko
Das muss entweder an mir oder an dem ES liegen.grübel...
Geh doch einfach weg von dem ES. Ich glaub da kommst du schneller voran und kannst dich auch voll auf dein Spiel konzentrieren. Aber viel Geduld hast du, dass muß man dir lassen. Ich glaube da hätte so manch anderer vorher das Handtuch geworfen wenn's nicht so funktioniert. :)
Cheers
Danke dir, aber ich will das ES etablieren, um es für alle nutzbar zu machen.
Ich könnte das Ganze auch in Cobra oder BM machen, aber mich wurmt das, weil ich nicht verstehe was ich da so gravierendes falsch mache.
Außerdem lerne ich dazu noch, wie das Ganze funktioniert, beschäftige mich mittlerweile schon ein wenig mit Vektoren und Matrizen.
Hoffe Gernot ist bald mal wieder online, denn ich denke er weiß sicher, was da bei mir schief läuft.
Leute das ist ein Faqforum kein Diskusionsboard!
Wenn ihr fragen dazu habt, macht bitte im GLBasic - de einen Thread auf !
Danke.