LCL/ExtGraphics: Avoid separate calculation of sin() and cos() in PaintStarN(). Issue #39983.

This commit is contained in:
wp_xyz 2022-11-02 16:26:07 +01:00
parent 6c8a2e750f
commit 27402e66dd

View File

@ -794,7 +794,7 @@ end;
procedure PaintStarN(Canvas: TCanvas;cx,cy,r,n:Integer; a: Extended); procedure PaintStarN(Canvas: TCanvas;cx,cy,r,n:Integer; a: Extended);
const MaxStarPoint=36; const MaxStarPoint=36;
var var
r1,r0,alpha:double; r1,r0,alpha,sinAlpha,cosAlpha:double;
P:array[0..MaxStarPoint*2-1] of TPoint; P:array[0..MaxStarPoint*2-1] of TPoint;
i,cs:Integer; i,cs:Integer;
begin begin
@ -803,9 +803,10 @@ begin
do begin do begin
if (i mod 2)=0 then r0:=r else r0:=r1; if (i mod 2)=0 then r0:=r else r0:=r1;
alpha:=a+(0.5+i/n)*Pi; alpha:=a+(0.5+i/n)*Pi;
cs:=RoundToInt(r0*cos(alpha)); SinCos(alpha, sinAlpha, cosAlpha);
cs:=RoundToInt(r0*cosAlpha);
P[i].x:=cx+cs; P[i].x:=cx+cs;
P[i].y:=cy-Round(r0*sin(alpha)); P[i].y:=cy-Round(r0*sinAlpha);
end; end;
for i:=2*n to MaxStarPoint*2-1 for i:=2*n to MaxStarPoint*2-1
do begin do begin