clipperlib中开放路径“方向”的含义是什么?

问题描述

ClipperLib文档中有关偏移量操作的前提条件如下:

  1. 闭合路径的方向必须一致,以使外部多边形共享相同的方向,并且任何孔都具有相反的方向(即非零填充)。 开放路径必须以封闭的外部多边形定向

(重点是我的)

开放路径的方向定义是什么?

解决方法

方向的定义仅对闭合路径有意义,这是文档中的错字。

如果输入没有经过排序和定向(即,您要偏移的区域被定义为闭环的集合,假设填充规则为奇数,并且不知道什么环是孔,什么是边界),解决方案是分两步执行操作

  1. 将所有循环的x或运算作为布尔运算
  2. 计算结果的偏移量

之所以可行,是因为clipperlib操作的结果总是经过排序和定向的。