Would be faster and simpilier (coding and runtime) to use Wizzyplugin.
program Circle;
{.Include SRL\SRL.SCAR}
{.Include SRL\SRL\Misc\DeBug.SCAR}
var
TPA: TPointArray;
begin
{TPA := TPAFromBox(IntToBox(X1, Y1, X2, Y2));
FilterPointsPie(TPA, 0, 360, Radius, Radius + 1, OriginX, OriginY);}
TPA := TPAFromBox(IntToBox(50, 50, 100, 100));
FilterPointsPie(TPA, 0, 360, 25, 26, 75, 75);
DeBugTPA(TPA, '');
end.
And lol… why not just use distance anyways?
program Circle;
{.Include SRL\SRL.SCAR}
{.Include SRL\SRL\Misc\DeBug.SCAR}
var
OldTPA, NewTPA: TPointArray;
I, C: LongInt;
begin
OldTPA := TPAFromBox(IntToBox(50, 50, 100, 100));
for I := 0 to High(OldTPA) do
if (Distance(OldTPA[I].X, OldTPA[I].Y, 75, 75) = 25) then
begin
SetLength(NewTPA, C + 1);
NewTPA[C] := OldTPA[I];
Inc(C);
end;
DeBugTPA(NewTPA, '');
end.