| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 |  
procedure rotationarraypoint(xo,yo:integer;tetadeg:real;ptarray:array of Tpoint;canvas:tcanvas);
var i:integer;
    teta:real;
    Rayon:array of integer;
    fi:array of real;
begin
setlength(Rayon,high(ptarray)+1);
setlength(fi,high(ptarray)+1);
teta:=pi*tetadeg/180;
for i:=low(ptarray) to high(ptarray) do begin
if ptarray[i].x-xo<>0 then
fi[i]:=arctan2(ptarray[i].y-yo,ptarray[i].x-xo)
else fi[i]:=-pi/2;
Rayon[i]:=round(sqrt(sqr(ptarray[i].x-xo)+sqr(ptarray[i].y-yo)));
ptarray[i].x:=Round(xo+Rayon[i]*cos(teta+fi[i]));
ptarray[i].y:=Round(yo+Rayon[i]*sin(teta+fi[i]));
end;
canvas.Polyline(ptarray);
end; | 
Partager