我将多边形绘制为具有5个坐标的UIBezierPath。它被正确显示并且计算了面积,现在我想要一个按钮,它开始填充形状,直到释放按钮并计算填充区域的百分比。我怎样才能有效地做到这一点?
左边的图像是当前的实现,右边的是逻辑实现后的样子。
提前谢谢!
答案 0 :(得分:0)
正在填充的多边形有五个顶点。假设它是凸的,描述填充区域的多边形有五个或六个顶点,用水平线截断原始。
将这些顶点的多个顶点收集为两个@[x,y]
对阵列,并将apply this formula收集到每个阵列以计算区域。
被填充的多边形是常量,因此其区域只需要计算一次。对于填充多边形,只要填充线y
大于任何顶点y
,该顶点的x*y
项将变为常量,因此您可以节省一些计算量。但是,为了使其正常工作,我将从每次填充线改变时重新计算整个填充区域开始。五个或六个顶点是花生,FPU明智。