Winkelproblem mit der 0°-Grenze

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Fetze

Betreff: Winkelproblem mit der 0°-Grenze

BeitragDi, März 02, 2004 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab da grad bei meinem Projekt StarTrade ein Problem mit Winkeln: Ich will einem Geschützturm einen Bereich definieren können, in dem er sich bewegen kann, also zwischen Winkel maxangle und Winkel minangle, und der aktuelle Winkel des Geschützes ist angle. Jetzt überprüfe ich das so(Function, ob sich das Geschütz in die gegebene Richtung bewegen kann):
Zitat:

If angle>=maxangle Then Return 0
If angle<=minangle Then Return 0
Return 1


Jetzt hab ich aber ein Problem:
Was, wenn der Bereich über die 0°-Grenze geht ?
Definiere ich zum Beispiel einen minwinkel von 300° und einen maxwinkel von 60°, funzt das ganze nicht. Daher hab ich beschlossen auch negative und winkel über 360° anzunehmen, aber da angle nur von 0-360 sein kann, wirft das wieder probleme auf. Wie mach ich das jetzt also ?

Jan_

Ehemaliger Admin

BeitragDi, März 02, 2004 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if angle < 0 then angle = angle + 360
if angle > 359 then angle = angle - 360


auf die schnelle!
between angels and insects

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, März 02, 2004 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Name(maxangle,minangle,angle)
If maxangle - minangle > 0 Then ; wenn ja dann  bereich von 0 - 359
   If angle >= minangle And  angle =< maxangle Then Return 1
Else ;wenn nein dann  nicht der normalfall
   If angle < 360 And angle >= minangle Then Return 1
   If angle >= 0 And angle =< maxangle Then Return 1
End If
Return 0   
End Function

damit sollte es gehen,...

um angle in den Natürlichen bereich von 0 - 359 Grad zu bekommen
mach das mit mod
beispiel
Code: [AUSKLAPPEN]
angle = (angle+360) Mod 360;mit  +360 stellt man sicher das Angle eine positive zahl ist

anstatt
Code: [AUSKLAPPEN]
if angle < 0 then angle = angle + 360
if angle > 359 then angle = angle - 360
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group