Code-Beispiel
InBetween - Prüfen ob sich ein Punkt zwischen 2 Punkten befindet
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
GPL | PMedia | 09.12.2010 |
Aus Bedarf wiedermal eine (ausführlich getestete und als "funktionierend" eingestufte) Funktion von mir, die inBetween().
1. und 2. Parameter geben den Rahmen an, der 3. Parameter den zu überprüfenden Wert an.
inBetween gibt es in 3 Versionen, für einen 1-dimensionalen Zahlenstrahl, für ein 2-dimensionales sowie für ein 3-dimensionales Feld.
Type Coord
X As Double
Y As Double
End Type
Type Vector
X As Double
Y As Double
Z As Double
End Type
Function InBetween1D(A as Double, B As Double, P As Double) As Byte
If A < B then
If (A <= P) AND (P <= B) then
return -1
else
return 0
end if
elseIf A > B then
If (B <= P) AND (P <= A) then
return -1
else
return 0
end if
End If
End Function
Function InBetween2D(A as Coord, B As Coord, P As Coord) As Byte
If inBetween1D(A.X, B.X, P.X) then
If inBetween1D(A.Y, B.Y, P.Y) then
return -1
else
return 0
end if
else
return 0
end if
End Function
Function InBetween3D(A as Vector, B As Vector, P As Vector) As Byte
If inBetween1D(A.X, B.X, P.X) then
If inBetween1D(A.Y, B.Y, P.Y) then
If inBetween1D(A.Z, B.Z, P.Z) then
return -1
else
return 0
end if
else
return 0
end if
else
return 0
end if
End Function
Beispiel:
Print InbetWeen3D(type(10,10,10),type(20,20,20),type(15,15,9))
Print InbetWeen3D(type(10,10,10),type(20,20,20),type(15,15,15))
Sleep
InBetween3D eignet sich ideal für Bounding Boxes in 3D-Spielen, InBetween2D zB in einer GUI als Hotspot. Beide Funktionen setzen inBetween1D voraus.
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 06.01.2008 von PMedia angelegt.
- Die aktuellste Version wurde am 09.12.2010 von ytwinky gespeichert.
|
|