Warum führt der folgende Code
Delphi-Quellcode:
ablx := ( ( x - dx ) * cos(alpha) ) - ( ( y - dy ) * sin(alpha) );
ably := ( ( x - dx ) * sin(alpha) ) + ( ( y - dy ) * cos(alpha) );
x := ablx + dx;
y := ably + dy;
nicht zu dem gleichen Ergebnis wie dieser:
Delphi-Quellcode:
x := ( ( x - dx ) * cos(alpha) ) - ( ( y - dy ) * sin(alpha) );
y := ( ( x - dx ) * sin(alpha) ) + ( ( y - dy ) * cos(alpha) );
Alle Variablen sind vom Typ Double.
Bei der Berechnung wird der Punkt (x,y) um den Punkt (dx,dy) gedreht. Mathematisch ist die Rechnung richtig.
Aber:
Bei dem zweiten Code führt es zu großen Fehlern.
Er dreht nicht richtig ! Nur Warum ??
Liegt das am Typ Double ??