Java:GeneralPath:什么是缠绕?

时间:2016-06-22 15:54:10

标签: java

什么是缠绕?是的,我知道,“阅读说明”。

'用于确定路径内部的非零缠绕规则。'

'用于确定路径内部的偶数绕组规则。'

好吧,对不起,但我不是英国人,我无法理解什么是绕组,'非零'和'偶数奇'在这里意味着什么。有人可以用其他的话来解释吗?我无法在屏幕上看到差异。

    GeneralPath gen1 = new GeneralPath(GeneralPath.WIND_NON_ZERO);
    GeneralPath gen2 = new GeneralPath(GeneralPath.WIND_EVEN_ODD);

3 个答案:

答案 0 :(得分:2)

我认为这个解释得非常完美

enter image description here

奇偶规则产生与简单形状的非零缠绕规则相同的结果,但对于更复杂的形状则产生不同的结果。

这里可以找到另一个理论示例(无代码) Example

答案 1 :(得分:1)

正如您发现Javadoc在这种情况下不是很有用:

<强> WIND_EVEN_ODD

public static final int WIND_EVEN_ODD

An even-odd winding rule for determining the interior of a path.

<强> WIND_NON_ZERO

public static final int WIND_NON_ZERO

A non-zero winding rule for determining the interior of a path.

但@RC提供的链接有一个有用的解释。

  

有两种常用方法可用于确定任何点是否在几何形状内。第一种称为奇偶规则,是基于从要分类的点到形状外的任何点绘制线(射线)。如果边缘交叉的数量是奇数,则该点在形状内;否则不是。第二种方法被称为非零缠绕规则,并且同样确定了绘制到远点的光线发生的边缘交叉的数量。然而,在非零缠绕规则方案中,从左到右的交叉点增加了交叉的总数,而从右到左的交叉点从交叉的总数中减去。如果从左到右和从右到左交叉的总和不等于零,则确定该点在内部。图3.3显示了应用这两个规则的示例。实际上,奇数偶数和非零的绕组规则为标记为1的模糊区域给出了不同的答案。

<强>参考

答案 2 :(得分:1)

在PDF规范中,有两个描述非零绕组编号规则和偶数奇规则。 enter image description here enter image description here