GR32_VectorUtils.Circle方法的工作方式与我的预期不同

时间:2019-01-03 15:57:08

标签: delphi graphics32

我正在使用以下代码块在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一样起作用。我尝试了很多事情,但没有成功。

1 个答案:

答案 0 :(得分:2)

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

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


  

我希望此函数的作用类似于TCanvas.Ellipse

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

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