Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   zwei Kurse vergleichen (https://www.delphipraxis.net/131705-zwei-kurse-vergleichen.html)

SimStar001 29. Mär 2009 14:09


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