Delphi 带LineDDA的椭圆点

Delphi 带LineDDA的椭圆点,delphi,Delphi,我可以使用GDI画布椭圆绘制夹点,但第二个点绘制错误。如何防止显示的效果 procedure TFormMain.DrawMarchingAnts; var iWidth: integer; begin AMarchingAntsCounter := AMarchingAntsCounterStart; // Use LineDDA to draw each of the 4 edges of the rectangle LineDDA(AMarchingAntsPointA.X

我可以使用GDI画布椭圆绘制夹点,但第二个点绘制错误。如何防止显示的效果

procedure TFormMain.DrawMarchingAnts;
var
  iWidth: integer;
begin
  AMarchingAntsCounter := AMarchingAntsCounterStart;
  // Use LineDDA to draw each of the 4 edges of the rectangle
  LineDDA(AMarchingAntsPointA.X, AMarchingAntsPointA.Y, AMarchingAntsPointB.X, AMarchingAntsPointA.Y,
    @MarchingAnts, LongInt(
    AMarchingAntsCanvas));
  LineDDA(AMarchingAntsPointB.X, AMarchingAntsPointA.Y, AMarchingAntsPointB.X, AMarchingAntsPointB.Y,
    @MarchingAnts, LongInt(
    AMarchingAntsCanvas));
  LineDDA(AMarchingAntsPointB.X, AMarchingAntsPointB.Y, AMarchingAntsPointA.X, AMarchingAntsPointB.Y,
    @MarchingAnts, LongInt(
    AMarchingAntsCanvas));
  LineDDA(AMarchingAntsPointA.X, AMarchingAntsPointB.Y, AMarchingAntsPointA.X, AMarchingAntsPointA.Y,
    @MarchingAnts, LongInt(
    AMarchingAntsCanvas));
  if AMarchingAntsPointB.X > AMarchingAntsPointA.X then
    ARubberbandVisible := True
  else
    ARubberbandVisible := False;
  AMarchingAntsCanvas.Pen.Width := 1;
  AMarchingAntsCanvas.Pen.Color := clWhite;
  AMarchingAntsCanvas.Brush.Color := clRed;
  AMarchingAntsCanvas.Ellipse(AMarchingAntsPointA.X-4, AMarchingAntsPointA.Y-4, AMarchingAntsPointA.X+4, AMarchingAntsPointA.Y+4);
  iWidth := AMarchingAntsPointB.X - AMarchingAntsPointA.X;
  AMarchingAntsCanvas.Ellipse(AMarchingAntsPointA.X-4 + iWidth, AMarchingAntsPointA.Y-4, AMarchingAntsPointA.X+4 + iWidth, AMarchingAntsPointA.Y+4);
end;

相关问题:我如何实现所示效果?@Sertac-可以回答您自己的问题吗?我解决了刷新问题。@Bill-当然,请这样做。不过,你可能需要等待一段时间才能接受你的答案。