我到处找遍了,想找到一个简单的解决办法。我是一个新的工作与画布上的绘画。
我对线条、圆形或矩形没有任何问题。派让我吃不下去了。
我想做的是画一个方位角为60度的楔子。它需要从300度开始,然后进展到30度。楔块必须为纯绿色。
我的问题是我不太理解所有的参数。
canvas.pie(x1,y1,x2,y2,x3,y3,x4,y4)-- x1,y1=Top Left -- x2,y2=Width and height,bottom right.
有没有人能成为一颗宝石,帮助解释其他4个参数,或者在网上给我一个很好的描述。一些示例代码也将非常方便。
我试过chatGPT,但没有用。
我甚至不能得到一个接近的结果
1条答案
按热度按时间xeufq47z1#
正如菲利普所写的,X3,Y3和X4,Y4是与馅饼的边相交的点。
您可以使用一个小trigonometry来计算这些点的位置,以便它们与您想要的Angular 相匹配。以下是我遵循的步骤:
1.创建新的VCL应用程序
1.在窗体上放置TPaintBox和TTrackbar
1.将System.Math添加到窗体的uses子句
1.将下面的代码添加到组件事件中
1.运行应用程序并使用轨迹条更改结束Angular
半径其实并不重要。我随意选了100个。SIN和COS使用弧度,但我仍然以度为单位,所以我使用DegToRad进行转换。
默认情况下,零度指向右侧。我从转换前的Angular 减去90度,使其指向上。调整以满足您的需求。
您可以通过交换X3、Y3和X4、Y4的值来控制饼图的绘制方向(顺时针与逆时针)。我想你也可以使用SetArcDirection WinAPI调用。我还没有搞混,但它在TCanvas.Arc文档中提到。