2011-05-18 128 views
1

如何从一组弧中计算圆的大小?从圆弧计算圆的大小?

具体来说,我有这个绘制一个圆的SVG路径定义,我正在寻找它的大小。

<path clip-path="url(#SVGID_2_)" fill="#99C44C" d="M334.293,56.846c0-4.782,3.88-8.659,8.665-8.659c4.78,0,8.66,3.877,8.66,8.659 
    c0,4.783-3.88,8.661-8.66,8.661C338.173,65.507,334.293,61.629,334.293,56.846"/> 

对于您的信息,该圆是在'd'属性中绘制的。 M334.293,56.846移动到这个x,y位置,那么c命令是曲线。

曲线:

绘制从当前点处的三次Bezier曲线到(x,y)的使用(X1,Y1)作为在该曲线和(X2,Y2)作为控制的开始控制点指向曲线的末尾。 C(大写)表示将出现绝对坐标; c(小写)表示后面会有相对坐标。

relative curves 
c0-4.782,3.88-8.659,8.665-8.659 
c4.78,0,8.66,3.877,8.66,8.659 
c0,4.783-3.88,8.661-8.66,8.661 

absolute curve 
C338.173,65.507,334.293,61.629,334.293,56.846 
+3

这不是一个圆圈。它非常接近,但贝塞尔曲线无法准确传达圆圈。 – 2011-05-18 09:07:58

回答

1

在这个时候你有两个possibilites:

你可以把贝塞尔曲线为圆形(这是作为评论,错误的,它只是真的圈看的)。要计算面积,请确定半径并照常使用π * r^2

如果要计算通常由路径元素包围的区域;这需要一些适度的微积分,而且不适合心脏病。

+0

谢谢,我更喜欢第一个选项!你知道如何确定弧的半径吗? – 2011-05-18 09:54:12

+1

@OllieG:绘制此“圆圈”时;你相对于正向x相对移动两次;两次上涨8.66个单位。从中可以清楚地看出,半径确实是8.66个单位。 Y轴上的移动对应于此;并且一贯是8.66个单位。 – 2011-05-18 10:05:27