Geschwindigkeit von Sinus u. Cosinus-Berechnungen

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

Meines Wissens nach sollten Tabellen etwas schneller sein. Aber du hast ja die Probe aufs Exemple gemacht…
Die Tabelle sollte Elemente enthalten, deren Größe 4 Bytes ist, dann ist der Zugriff schneller. Versuche auch, die Tabelle in den lokalen Speicherbereich unterzubringen (naja, kann sein, dass das bei der Speicherverwaltung von Win98 ff. keinen Unterschied macht, aber probieren kann man’s ja).

Jochen

hi,
ich kenne dein programm nicht, aber benutze doch openGL!
projeziere deine landkarte nicht auf eine fläche, sondern auf ein kugelabschnitt oder sowas. bewegt sich superschnell in echtzeit! z.b. kann man damit flüssig bildschirmgrosse bilder rotieren, wozu photoshop ein halber jahr braucht (is auch ein bisserl schöner)
viele programme benutzen tabellen für trigonometrische funktionen. du könntest dir auch ein polynom statt sinus ausdenken, geht viel schneller! ist aber nicht so schön
ciao chris

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]