Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用OpenGL或CoreGraphics填充CGPoints的触摸绘制路径_Iphone_Objective C_Core Graphics_Points_Flood Fill - Fatal编程技术网

Iphone 使用OpenGL或CoreGraphics填充CGPoints的触摸绘制路径

Iphone 使用OpenGL或CoreGraphics填充CGPoints的触摸绘制路径,iphone,objective-c,core-graphics,points,flood-fill,Iphone,Objective C,Core Graphics,Points,Flood Fill,我有一系列的点组成了一条路径。我可以检测到它何时自相交。当这种情况发生时,我会尝试填充路径 首先我使用CoreGraphics,现在我使用openGl绘制三角形数组。不像你在图中看到的那样好用。 如何只填充圆形区域,而不填充“尾部”?我在考虑反向洪水填充,但不认为CG有任何API函数用于此…也许不需要实际绘制路径,您只需近似路径的直径,并用近似值绘制一个圆即可 以下是一些在iPhone上检测圆圈手势的代码: 记录双链接列表中的所有点。当需要填充时,从开始开始遍历列表并找到最接近末尾的点。然后,

我有一系列的点组成了一条路径。我可以检测到它何时自相交。当这种情况发生时,我会尝试填充路径

首先我使用CoreGraphics,现在我使用openGl绘制三角形数组。不像你在图中看到的那样好用。


如何只填充圆形区域,而不填充“尾部”?我在考虑反向洪水填充,但不认为CG有任何API函数用于此…

也许不需要实际绘制路径,您只需近似路径的直径,并用近似值绘制一个圆即可

以下是一些在iPhone上检测圆圈手势的代码:

记录双链接列表中的所有点。当需要填充时,从开始开始遍历列表并找到最接近末尾的点。然后,将线连接到该点,然后按相反顺序连接到每个点,以列表中的第二个点停止。填充将隐式关闭路径,路径将从您离开的位置(第二个点)跳回到起点(第一个点)


这只是我的头顶;您可以在此基础上使用一些变体,以了解什么最有效。您可能会在每个节点中记录最近的前一个节点,但这对许多节点来说可能会很昂贵。

这些形状甚至不一定接近圆形……它们可以是任何触摸绘制的形状。