问题描述
ClipperLib文档中有关偏移量操作的前提条件如下:
- 闭合路径的方向必须一致,以使外部多边形共享相同的方向,并且任何孔都具有相反的方向(即非零填充)。 开放路径必须以封闭的外部多边形定向。
(重点是我的)
开放路径的方向定义是什么?
解决方法
方向的定义仅对闭合路径有意义,这是文档中的错字。
如果输入没有经过排序和定向(即,您要偏移的区域被定义为闭环的集合,假设填充规则为奇数,并且不知道什么环是孔,什么是边界),解决方案是分两步执行操作
- 将所有循环的x或运算作为布尔运算
- 计算结果的偏移量
之所以可行,是因为clipperlib操作的结果总是经过排序和定向的。