[英]Delphi GDI+ find point on an arc using the known rectangle and angle
在 Delphi 10.2.3 中使用 GDI+:我有一个从矩形 RectF 绘制的椭圆(非圆形)弧,并使用 DrawArcF 定义了起始角和扫角。 我需要能够仅根据点的度数找到沿圆弧中心线的任何点(无论笔宽如何) - 例如,如果圆弧从 210 开始 120 度,我需要找到该点,比如说,284 度,相对于 RectF。
在这种情况下,无论矩形大小如何,矩形的纵横比都保持不变,因此弧线的形状也应该保持一致,如果这会有所不同的话。
关于如何 go 对此有何想法?
以cx, cy
为中心、半轴a,b
的轴对齐椭圆相对于角度Fi
的参数方程为:
t = ArcTan2(a * Sin(Fi), b * Cos(Fi))
x = cx + a * Cos(t)
y = cy + b * Sin(t)
(我使用atan2
来摆脱atan
范围限制/符号问题)
请注意,参数t
贯穿相同的范围0..2*Pi
但与真实角度Fi
不同(它们在角度k*Pi/2
处重合)。
来自 Mathworld的b/a=0.6
的Fi/t
比率图片(公式 58 附近)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.