Ersetz mal dieses
Delphi-Quellcode:
// Quadrantnummer aus Grenzwinkeln bestimmen
If ((winkel*10)>=0) and ((winkel*10)<=900) then
Begin
quadrant:= 1;
end;
If ((winkel*10)>900) and ((winkel*10)<=1800) then
Begin
quadrant:= 2;
end;
If ((winkel*10)>1800) and ((winkel*10)<=2700) then
Begin
quadrant:= 3;
end;
If ((winkel*10)>2700) and ((winkel*10)<=3600) then
Begin
quadrant:= 4;
end;
// Funktionsberechnung
Case quadrant of
1: begin
coswert:=cos_Tab[i];
end;
2: begin
coswert:=-cos_Tab[1800-i];
end;
3: begin
coswert:=-cos_Tab[1800+i];
end;
4: begin
coswert:=cos_Tab[3600-i];
end;
end;
durch dieses
Delphi-Quellcode:
I := winkel*10;
// an dieser Stelle gilt: 0 <= winkel <= 360,
// also auch: 0 <= I <= 3600
if (I <= 900) then
coswert := cos_Tab[I] // 0..90
else If (I <= 1800) then
coswert := -cos_Tab[1800 - I] // 90..180
else If (I <= 2700) then
coswert := -cos_Tab[I - 1800] // 180..270
else
coswert := cos_Tab[3600 - I]; // 270..360
Durch die Verwendung von ELSE ersparst du dir die Abfrage der unteren Grenzen. Da du vorher schon den Bereich 0..360 kontrollierst, kann diese Überprüfung ebenfalls entfallen.