-1

我正在使用以下代码块在 TBitmap32 (x:0,y:0) 点上画一个圆圈。

Pts := Circle(0,0,35);

PolylineFS(Bitmap32, Pts, clBlack32, True, 3);

但是,绘制的圆是在指定坐标后面绘制的。圆的一半位于 TBitmap32 的负坐标中。

Pts := Circle(35,35,35);

当我尝试这行代码时,x 坐标几乎绘制到了正确的点,但 Y 点仍然不在正确的坐标中。

我希望这个函数表现得像 TCanvas.Ellipse。我尝试了很多东西,但都没有成功。

4

1 回答 1

2

代码按设计执行。您提供的坐标是圆心和半径。

自然,如果您提供 0 作为中心,则圆的一半将具有负坐标。通过传递圆心的坐标来解决您的问题。


我希望这个函数表现得像TCanvas.Ellipse.

这不是针对第三方接口进行编程的方式。第三方库的作者决定界面,你必须遵循。在这种情况下,图书馆的作者已经下令您必须提供圆心。在这件事上你别无选择。您必须遵循库作者定义的接口。

如果您希望以不同的方式提供坐标,则需要编写一个适配器。您可以编写自己的代码,以您希望使用的形式接受坐标,然后让该代码将您的坐标转换为库所需的坐标。

于 2019-01-03T16:05:21.103 回答