如何获取.net DrawArc方法的弧长

时间:2019-03-08 15:14:24

标签: math drawing trigonometry

我想知道如何获得在位图上绘制的这两种形状的弧长。使用以下方法绘制曲线:

'Half Round:
Dim gfxpath As New GraphicsPath
gfxpath.AddArc(outRect, 180, 180)
gfxpath.AddArc(inRect, 180, 180)
gfxpath.CloseFigure()
gfx.FillPath(b, gfxpath)
gfx.DrawPath(p, gfxpath)

'Quarter Round:
Dim gfxpath As New GraphicsPath
gfx.DrawArc(p, outRect, 270, 90)
gfx.DrawArc(p, inRect, 270, 90)

我只需要外弧(由外矩形界定的弧)的弧长。谢谢!

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

没有椭圆弧长的封闭公式。它通过所谓的“椭圆积分”表示。

您可以计算弧长积分的数值解。

如果圆弧是整个椭圆的一半和四分之一(从图片中看不出来),则可以使用一些近似值,例如Ramanujan one

p = Pi * (3*(a+b)+Sqrt((3a+b)*(a+3b)))

第一张照片

len = p / 2 = 1.5708 * (3*(36+18)+Sqrt((3*36+18)*(36+3*18)))