2016-02-29 91 views
0

我有一个绘制为5个坐标的UIBezierPath的多边形。它正确显示和计算面积,现在我想要一个按钮,开始填充形状,直到松开按钮并计算填充区域的百分比。我怎样才能有效地做到这一点?计算多边形/形状/ UIBezierPath中的填充百分比

enter image description hereenter image description here

在左边的图像有当前实现中,正确的是应该是什么样的逻辑被实现了。

预先感谢您!

回答

0

被填充的多边形有五个顶点。假设它是凸的,描述填充区域的多边形具有五个或六个顶点,用水平线截断原始。

将它们的顶点作为@[x,y]对的两个数组以及apply this formula分别收集到多边形中以计算面积。

被填充的多边形是不变的,所以它的面积只需要计算一次。对于填充多边形,只要填充线y大于任何顶点y,该顶点的术语就会变成常量,因此您可以在那里节省一些计算量。但是,为了让它工作,我会在每次填充线改变时重新计算整个填充区域。五或六个顶点是花生,FPU方式。

+0

首先,感谢您的回答。我明白你的意思,这就是我正在申请填​​充多边形的公式,事实是,如何在按下按钮时用动画“填充”填充区域?这个想法是开始用动画填充多边形,当释放按钮时让该区域填充,但要绘制UIBezier路径,您需要先了解坐标。 – iDeC

+0

问题是如何执行填充多边形的动画,或者如何在按下按钮时执行该动画,或者如何计算其面积? – danh

+0

如何动画的概念是'CAKeyframeAnimation'。将外部多边形的坐标保持为四周,与填充线“交叉”以获得填充线的几个y值处的填充坐标(填充线与外部多边形顶点相交的每个y值是最小集),那些中间多边形是关键帧动画的'values'数组。按照原始答案中的描述计算区域。 – danh