[BB2D]In Kreis?

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Firstdeathmaker

Betreff: [BB2D]In Kreis?

BeitragFr, Dez 31, 2004 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis, ist jetzt nicht so der Hammer, aber ich brauchte gerade für mein Spiel eine Funktion die schaut, ob sich eine Koordinate in einem bestimmten Radius um einen Punkt befindet. Wer´s braucht (mit Beispie):

Code: [AUSKLAPPEN]
SCREEN_X=800/2
SCREEN_Y=600/2

Graphics 800,600
SetBuffer BackBuffer()


Repeat
Cls
Oval SCREEN_X-50,SCREEN_Y-50,100,100,1
If InKreis(SCREEN_X,SCREEN_Y,50,MouseX(),MouseY()) Text 20,20,"Im Kreis"

Flip
Until KeyHit(1)
End



Function InKreis(kreis_mx,kreis_my,kreis_r,x#,y#)
If x>kreis_mx+kreis_r Or x<kreis_mx-kreis_r Return 0
If y>kreis_my+kreis_r Or y<kreis_my-kreis_r Return 0
relativ_x#=x-kreis_mx
relativ_y#=y-kreis_my
einheits_x#=relativ_x/kreis_r
einheits_y#=relativ_y/kreis_r
y_spannweite#=Sin(ACos(einheits_x))
If einheits_y>y_spannweite Or einheits_y<-y_spannweite Return 0
x_spannweite#=Sin(ACos(einheits_y))
If einheits_x>x_spannweite Or einheits_x<-x_spannweite Return 0
Return 1
End Function
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
  • Zuletzt bearbeitet von Firstdeathmaker am Sa, Apr 22, 2006 11:13, insgesamt einmal bearbeitet

Mr.Keks

BeitragFr, Dez 31, 2004 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
omg, kennst du pythargoras nicht? Smile
... dafür gehtst du aber ziemlich sicher mit cos/sin um =)

Code: [AUSKLAPPEN]
SCREEN_X=800/2
SCREEN_Y=600/2

Graphics 800,600
SetBuffer BackBuffer()


Repeat
Cls
Oval SCREEN_X-50,SCREEN_Y-50,100,100,1
If Sqr((SCREEN_X-MouseX())^2+(SCREEN_Y-MouseY())^2) <50 Then Text 20,20,"Im Kreis"

Flip
Until KeyHit(1)
End
MrKeks.net

D2006

Administrator

BeitragFr, Dez 31, 2004 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
SQR ist ja nicht das schnellste, deswegen als kleine Optimierung von Inaries Code:

Code: [AUSKLAPPEN]

If (SCREEN_X-MouseX())^2+(SCREEN_Y-MouseY())^2 < 2500 Then Text 20,20,"Im Kreis"


Rutscht gut rein!

MfG
D2006

Firstdeathmaker

BeitragSo, Jan 09, 2005 5:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kenn Pythagoras, allerdings habe ich mich nie groß damit beschäftigt weil ich total sin/tan fixiert bin!

Ich habe, als wir das in der Schule hatten, in Exel (damals kannte ich noch kein BB) ein Programm geschrieben welches mir, egal welche Vorraussetzungen gegeben waren, immer alle anderen Daten eines Dreiecks ausgerechnet hat. Die Hausaufgaben waren dadurch in 5 Minuten erledigt. Nachteil: Ich habe pro Tag 5 Stunden am Verbessern des Programms gesessen Wink

Naja, danke für die Verbesserungen!
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group