Winkel falsch...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Goodjee

Betreff: Winkel falsch...

BeitragSa, Jun 10, 2006 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

map=CreateImage(400,400)
SetBuffer ImageBuffer(map)
Color 255,255,255
Rect 0,0,400,400
Color 0,200,0
Oval 50,50,300,300
SetBuffer BackBuffer()

Dim men(359)
men(0)=CreateImage(50,30)
SetBuffer ImageBuffer(men(0))
Line 20,15,40,15
Oval 40,10,10,10
Line 0,0,20,15
Line 0,30,20,15
Line 40,15,25,0
Line 40,15,25,30
SetBuffer BackBuffer()
HandleImage(men(0),0,15)
For i=1 To 359
   men(i)=CopyImage(men(0))
   RotateImage(men(i),i)
Next

Repeat
DrawImage map,0,0
winkel=ASin((MouseY()-200)/Sqr((MouseY()-200)^2+(MouseX()-200)^2))
If winkel=360 Then
winkel=0
ElseIf winkel<0 Then
winkel=359+winkel
EndIf
DebugLog winkel
DrawImage men(winkel),MouseX(),MouseY()
Flip
Until KeyHit(1)
End


bei diesem code ist auf der rechten seite der kugel alles ok...nur wenn ich auf der linken seite rum gehe ist der winkel immer falsch...ich kenne mich nicht ganz so mit den winkelbefehlen aus...also bitte helft mir...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

PowerProgrammer

BeitragSa, Jun 10, 2006 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, du brauchst den Befehl "Mod". Guck dir den und ATan in der OH an. Da sind ja immer so praktische Praxisbeispiele Wink

Goodjee

BeitragSa, Jun 10, 2006 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab versucht mod auszubauen weil das langsam ist...is ja ne division und die sind immer die langsamsten..

so gehts immer noch nicht...

Code: [AUSKLAPPEN]

Repeat
DrawImage map,0,0
dx=MouseX()-200
dy=MouseY()-200
r#=Sqr#(dx*dx+dy*dy)
winkel=ASin(dy/r)
winkel=winkel Mod 360
DebugLog winkel
DrawImage men(winkel),MouseX(),MouseY()
Flip
Until KeyHit(1)
End
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
  • Zuletzt bearbeitet von Goodjee am Sa, Jun 10, 2006 12:41, insgesamt einmal bearbeitet
 

Matthias

BeitragSa, Jun 10, 2006 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay Ich weis jetzt zwar nicht genau was du willst aber vileicht hilft dir das hir weiter.
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer BackBuffer()

map=CreateImage(400,400)
SetBuffer ImageBuffer(map)
Color 255,255,255
Rect 0,0,400,400
Color 0,200,0
Oval 50,50,300,300
 KreisMitteX=125+50
 KreisMitteY=125+50

men=CreateImage(50,30)
SetBuffer ImageBuffer(men)
Line 20,15,40,15
Oval 40,10,10,10
Line 0,0,20,15
Line 0,30,20,15
Line 40,15,25,0
Line 40,15,25,30
MidHandle men
SetBuffer BackBuffer()

Repeat
MausX=MouseX():MausY=MouseY()
Winkel=ATan2(MausX-KreisMitteX,MausY-KreisMitteY)+180
AppTitle Winkel
DrawBlock Map,0,0
MenUpdate=CopyImage(Men):RotateImage MenUpdate,Winkel*-1-90
DrawImage MenUpdate,MausX,MausY:FreeImage MenUpdate
Flip
Until KeyDown(1)=1:End

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group