Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler bei der Grafikberechnung! (https://www.delphipraxis.net/6536-fehler-bei-der-grafikberechnung.html)

thorstenf01 14. Jul 2003 12:49


Fehler bei der Grafikberechnung!
 
Hallo!
Ich weiß einfach nicht weiter...
Die unteren beiden Prozeduren sind Teil einer Grafikberechnung
Nachdem ich das Programm compiliert habe und die Grafik gestartet wurde,
erhielt ich in "Zeile X" folgende Fehlermeldung:
"Im Projekt Schattenwurf1.exe ist eine Exception der Klasse
EInvalidOp aufgetreten. Meldung: 'Ungültige Gleitkommaoperationen'.
Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen."
Wenn ich mit der Maus über die Vaiablen Dekli und Ts0 (die beide als
Globale Variablen festgelegt wurden) fuhr, erhielt ich den Wert 0
BR=54,459 und Tag=5 wurden in anderen Prozeduren deklariert.
Kann mir jemand den Fehler oder das Problem erklären?
Code:
...
procedure Deklination(Tag: integer);
var  d0, De, DeltaT, EF, Ge, Omega, DeltaL, DeltaEp, gee, EE, Aj, ZL,
      Ls, Epsi, gut                                              :real;
begin
      d0:=36524.0+Tag;
      De:=0.0001*d0;
      DeltaT:=0.00037+0.00000003*(d0-22000);
      EF:=11.25+13.22935*d0;
      Ge:=350.74+12.190749*d0;
      Omega:=259.18-0.052954*d0;
      DeltaL:=-0.00479*sin(Omega)-0.00035*sin(2*(EF-Ge+Omega));
      DeltaEp:=0.00256*cos(Omega)+0.00015*cos(2*(EF-Ge+Omega));
      gee:=358.475833+0.985600267*d0-0.0000112*De*De-0.00000007*De*De*De;
      {gee:=356.04783+0.9856003*d0;}
      EE:=0.01675104-0.000011444*De-0.0000000094*De*De;
      Aj:=0.00569*(1+EE*cos(gee))/(1-EE*EE);
      ZL:=(2*EE*sin(gee)+1.25*EE*EE*sin(2*gee)+EE*EE*EE*(13*sin(3*gee)
          -3*sin(gee))/12)*180/Pi;
      Ls:=279.696678+0.9856473354*d0+0.00002267*De*De+ZL+DeltaT-Aj;
      Epsi:=23.452294-0.0035626*De-0.000000123*De*De+0.0000000103*De*De*De
          +DeltaEp;

      Dekli:=arcsin(sin(Ls)*sin(Epsi));

      gut:=sin(0.5*Epsi)/cos(0.5*Epsi); gut:=gut*gut;
      ZG:=12*(gut*sin(2*Ls)-0.5*gut*gut*sin(4*Ls)-2*EE*sin(gee)-1.25*EE*EE
          *sin(2*gee))/Pi;
end;

procedure AU(Tag :integer); {Auf-und Untergang der Sonne}
var  WOZa, WOZu, u9           :real;
begin
      u9:=cos(BR)*cos(Dekli);
      Ts0:=(sin(-0.85)/u9)-(sin(BR)*sin(Dekli)/u9);
      Ts0:=arccos(Ts0); ---------------------------------------(*Zeile X*)
      WOZa:=12-TS0/15;
      WOZu:=12+TS0/15;
      ZZA:=WOZa-ZG+(L0-LA)/15;
      ZZU:=WOZu-ZG+(L0-LA)/15;
end;
...
Danke im voraus..

sakura 14. Jul 2003 13:24

Re: Fehler bei der Grafikberechnung!
 
Es ist gut möglich, das Ts0 ausserhalb des zulässigen Wertebereiches liegt.
Zitat:

Zitat von Delphi Hilfe
X must be between -1 and 1.

...:cat:...

thorstenf01 14. Jul 2003 14:58

Re: Fehler bei der Grafikberechnung!
 
Hy!
Ich habe einen Haltepunkt gesetzt und stellte für Ts0 einen Wert von 3,1078... fest, welcher natürlich aus dem Bereich
von 1 bis -1 liegt. Somit müsste der Fehler sicherlich bei einer der vorherigen Deklarationen liegen.
Ich habe somit, bei Ts0 angefangen, die Formeln mit dem Taschenrechner nachzurechnen und ich bekam z.B. für Ts0
einen Wert von -0,02017954 heraus und auch für u9 und Dekli bekam ich nach mehrfacher Überprüfung andere Werte heraus.
Woher kommt das? Wie rechnet Delphi? Die Unit Math ist bereits vorhanden
Gruß
TF


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz