我正在使用以下代码块在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一样起作用。我尝试了很多事情,但没有成功。
答案 0 :(得分:2)
代码按设计执行。您提供的坐标是圆心和半径。
自然,如果您提供0作为中心,那么圆的一半将具有负坐标。通过传递圆心的坐标来解决您的问题。
我希望此函数的作用类似于
TCanvas.Ellipse
。
这不是针对第三方接口进行编程的方式。第三方库的作者决定接口,您必须遵循它。在这种情况下,库的作者已命令您必须提供圆心。您在这件事上别无选择。您必须遵循图书馆作者定义的界面。
如果希望以其他方式提供坐标,则需要编写一个适配器。您可以编写自己的代码,以您希望使用的形式接受坐标,然后使该代码将您的坐标转换为库所需的坐标。