Forum: Programmieren allgemein
by dizzy,
15. Feb 2005
Das hatte ich dir auch schon geschrieben...
Bei Vielfachen von (Pi/2). (Meinem obigen Posting auch zu entnehmen, wenn auch nicht in aller Deutlichkeit.)
Aber das hilft dir nicht weiter, da man bei Float-Werten NIE sicher sein kann einen Wert ganz genau zu treffen. (Zur Erklärung hab ich hier schon mal was längeres gepostet - müsstest mal suchen.)
Also:
if (cos(irgendwas) < -0.00000001)...
Forum: Programmieren allgemein
by dizzy,
15. Feb 2005
Mit ohne Pi kommst du wahrscheinlich nur sehr unwahrscheinlich auf ein Vielfaches von (Pi/2). Daher "triffst" du die Polstellen erst garnicht.
Forum: Programmieren allgemein
by dizzy,
15. Feb 2005
Weil 0 bei Floats nicht unbedingt genau 0 ist. Du musst eine klitze kleine Spanne um 0 herum abfangen.
Forum: Programmieren allgemein
by dizzy,
15. Feb 2005
Ist er NICHT. Zeichne mal einen einzelnen Pixel dahin, und sag mir ob du ihn siehst ;). Deinem Screenshot nach ist es aber wohl nicht die Zeichenroutine (die in der Regel gegen "Überm-Rand-Zeichnen" gesichert sind), sondern dein Prog fliegt bei einer Polstelle raus.
Ich vermute mal, dass das Ergebnis der Division, wenn 0 schon ausgeschlossen ist, zu groß für den Datentyp wird, und deshalb...