{Original}
procedure PieSlice(X,Y:OptInt16;Rx,Ry:OptWord;Color:OptByte;StartAngle,EndAngle:Real48;CountPoints:OptInt16);
var i: OptInt16; angle, step: Real48;
begin
PutPixel(X,Y,Color);
step := (EndAngle - StartAngle) * ConstPi / 180 / CountPoints;
for i := 0 to CountPoints do
begin
angle := StartAngle * ConstPi / 180 + i * step;
PutPixel(X + Round(Rx * Cos(angle)), Y + Round(Ry * Sin(angle)), Color);
end;
end;
{END Original}






procedure PieSlice(X,Y:OptInt16;Rx,Ry:OptWord;Color:OptByte;StartAngle,EndAngle:Real48);
var i: OptInt16; angle, step: Real48;CountPoints:OptWord;
begin
CountPoints:=Radius*8;   
PutPixel(X,Y,Color);
step := (EndAngle - StartAngle) * ConstPi / 180 / CountPoints;
for i := 0 to CountPoints do
begin
angle := StartAngle * ConstPi / 180 + i * step;

uPDK.Line(X,Y,
X + Round(Rx * Cos(angle)), Y + Round(Ry * Sin(angle)), Color);
end;
end;



 PieSlice  .
  Line   PutPixel

procedure PieSlice(X,Y:OptInt16;Rx,Ry:OptWord;Color:OptByte;StartAngle,EndAngle:Real48;CountPoints:OptInt16);
var i: OptInt16; angle, step: Real48;
begin
PutPixel(X,Y,Color);
step := (EndAngle - StartAngle) * ConstPi / 180 / CountPoints;
for i := 0 to CountPoints do
begin
angle := StartAngle * ConstPi / 180 + i * step;
{PutPixel(X + Round(Rx * Cos(angle)), Y + Round(Ry * Sin(angle)), Color);}
uPDK.Line(X,Y,X + Round(Rx * Cos(angle)), Y + Round(Ry * Sin(angle)), Color);
end;
end;




Radius:=130;
{PieSlice}
{Graph.PieSlice(300, 200, 270,360,  Radius);}
PieSlice(300, 200,  130,130,  11, 360-270,360-360);


{PieSlice}
 Radius:= 30;
 Graph.PieSlice(60, 400, 270,360,  Radius);
{uMain.PieSlice(60+zmX, 400,  30,30,  11, 360-270,360-360,  360);}
