Die Frage ist vielleicht etwas dumm, aber ich bislang (z.B. in google) sehr wenig detailierte Hintergrundinformationen zu meinem „Problem“ gefunden. Insofern möchte ich die Frage hier stellen.
Das Program, an dem ich zur Zeit arbeite, ist prinzipiell eine Art „Moving Map“, also eine Kartenprojektion, die mit einer äußeren Positionsangaben mitscrollt. Diese Projektion soll im Idealfall bis zu 20 mal pro Sekunde neu berechnet werden.
Die zugrundeliegenden Kartendaten liegen in Form einer Mercator-Projektion vor, aber um Verzerrungen in Polargebieten zu vermeiden, benötige ich eine Umrechnung auf eine nahezu verzerrungsfrei Projektion. (Eben 20x / s).
Nun benötigt diese Art der Berechnung vergleichsweise viele trigonometrische Berechnungen (sin, cos, arctan). Bei kleinen Fenstergrößen ist das akzeptabel, bei größeren Kartenbildern nimmt aber die Berechnungsdauer quadratisch mit der Bildgröße zu.
Meine Frage ist nun, ob z.B. ein Vorausberechnung von Sin/Cos-Tabellen dem Programm Zeit sparen würde oder nicht? Einerseits müsste bei einer Vorausberechnung das Programm nur noch in einer Tabelle von Sinus-Werten nachsehen. Andererseits benutzt Delphi 6 vermutlich den in allen modernen Prozessoren vorhandenen Koprozessor (d.h. bei 286/386 gab es noch Koprozessoren, er wurde ja ab 486 oder Pentium integriert).
Ein kurzes Testprogramm, welches mit beiden Methoden den Sinus von 100.000.000 Zufallszahlen berechnet, ergab keinen großen Unterschied in der Laufzeit (~ 20 sec).
Insofern die Frage, ob eine der beiden Methoden wirklich effizienter ist.
Danke für die Hilfe,
Markus