![]() |
zwei Kurse vergleichen
Hallo, ich brauche ne funktion die zwei Kurse miteinander vergleicht.
ich habe mir auch schon was überlegt. aber das funktioniert irgendwei nicht so recht... Und zwar habe Ich kurs1 --> True_heading und Kurs2 --> calc_heading es soll nun verglichen werden, ob calc_heading innerhalb von True_heading +- 90° liegt. Problem hierbei ist der 360 / = ° Sprung. Wie kann ich die beiden Kurse vergleichen=? hier mal mein code:
Delphi-Quellcode:
function Vergleiche_heading(True_heading, calc_heading : integer): boolean;
var heading1 , heading2 : integer; begin dec(true_heading,90); inc(true_heading,90); if (heading1 > 180) and (heading2 > 0) then dec(heading1,360); if (heading1 > -180) and (heading2 >= 0) and (calc_heading >= 180) then dec(calc_heading,360); result := false; if (calc_heading >= heading1) and (heading2 >= calc_heading) then result := true; end; EDIT: So ich glaube ich habs geschafft: hier der neue Code:
Delphi-Quellcode:
// Diese Funktion prüft die Kurse auf einen Wert +- 90°
function Vergleiche_heading(True_heading, calc_heading : integer): boolean; var heading1 , heading2 : integer; begin result := false; heading1 := True_Heading - 90; heading2 := true_heading + 90; //Kurse korrigieren if heading1 < 0 then heading1 := 360 + heading1; if heading2 > 359 then heading2 := 360 - heading2; if heading1 > heading2 then if (calc_heading >= Heading1) and (calc_heading <= heading2 + 360) then result := true; if (calc_heading >= Heading1) and (calc_heading <= heading2) then result := true; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz