对多边形的布尔运算
Boolean Operations On polygons
I目前正在实现绘图软件,可以绘制不等式(或不等式系统),如f(x,y)
我找到了等值线f(x,y)=g(x,y)的近似多边形,但现在我面临的问题是找到近似区域的多边形。
我找到了优秀的Javascript库http://sourceforge.net/projects/jsclipper/来做这件事,但是我不知道如何正确使用它。
例如,如果我想找到两个多边形的异或,这两个多边形代表半径为1和2的圆(一个多边形在另一个多边形内,所以我想找到一个圆圈外和另一个圆圈内的区域),如何使用它
例如,如果我想找到两个多边形的异或,这两个多边形代表半径为1和2的圆(一个多边形在另一个多边形内,所以我想找到一个圆外和另一个圆内的区域
首先,JSClipper (Clipper的Java翻译)只接受多边形作为整型坐标的平坦路径。因此,您需要将圆半径按适当的因子(取决于所需的精度)进行缩放,并使用PointsOnEllipse算法生成平坦的路径。
然后,假设一个圆位于另一个圆的内部,并且这个内圆代表外部圆形多边形的一个"孔",那么它的方向将需要与外部多边形相反(如这里所解释的)。
JSClipper的布尔运算的解决方案将保持为平坦的路径,尽管您指定的路径上的异或操作的解决方案将是这些完全相同的路径(即不变),因为这两条路径仍然表示返回的多边形区域的外部和内部轮廓。
一旦任何布尔运算完成,您需要反转任何初始多边形缩放以获得代表平坦路径的浮点坐标。
最后,没有简单的方法可以从平坦的路径重建圆/椭圆半径和原点等。
相关文章:
- javascript中的布尔条件
- 我的django模板布尔变量是't在javascript中按预期工作
- SVG/JavaScript:尝试选择和更改多边形点
- 在javascript中否定布尔函数
- 有条件地在选项标记中应用布尔属性
- 如何从javascript/jquery中的复选框中获取布尔值
- 如何获取谷歌地图多边形的当前fillColor
- 将多个布尔检查简化为一个布尔检查
- 如何在谷歌日历图表中使用布尔型列
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- KendoUI网格行过滤器,带有布尔值下拉列表
- 哪个布尔运算更快<或者<=
- php布尔值's小写AND大写和数字布尔值'可以接受
- 标准布尔运算顺序
- CSG - 使用 CSG 的布尔运算.飞机
- JavaScript中对数组集的布尔运算
- D3.js SVG的2D多边形布尔运算
- 如何检查eval()上的布尔值或算术运算是否为假?
- 对多边形的布尔运算
- 使用jQuery对一个元素进行布尔运算