我想知道如何获得在位图上绘制的这两种形状的弧长。使用以下方法绘制曲线:
'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)
我只需要外弧(由外矩形界定的弧)的弧长。谢谢!
答案 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)))