Canvas.Arc(iMin,jMin, iMax,jMax, x1, y1, x2,y2);
Windows.Arc(Canvas.handle,iMin,jMin, iMax,jMax, x1, y1, x2,y2);
Oh dear me! I finally noticed that the Lazarus Arc differs from
the rest of the world. In Windows API and Delphi the coordinates
are rectangle coordinates and in Lazarus it is
TCanvas.Arc(Left,Top,AWidth,AHeight,sx,sy,ex,ey : Integer);
in Delphi this is:
procedure Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
And Windows API:
BOOL Arc(
HDC hdc, // handle to device context
int nLeftRect, // x-coord of rectangle's upper-left corner
int nTopRect, // y-coord of rectangle's upper-left corner
int nRightRect, // x-coord of rectangle's lower-right corner
int nBottomRect, // y-coord of rectangle's lower-right corner
int nXStartArc, // x-coord of first radial ending point
int nYStartArc, // y-coord of first radial ending point
int nXEndArc, // x-coord of second radial ending point
int nYEndArc // y-coord of second radial ending point
);
for some reason unknown to me. This explains the weird behaviour of
a graphics application I tried to port from Delphi
Is there any special reason for one of the primitives to have a different
parameter list?