首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clipper.js不使用坐标集

Clipper.js不使用坐标集
EN

Stack Overflow用户
提问于 2018-03-15 07:42:32
回答 1查看 132关注 0票数 1

我正在尝试修改clipper.js库中的“简化多边形”函数。我不知道以下脚本有什么问题:

代码语言:javascript
复制
   var five_pointed_star = [{
  "X": 114.11152626295,
  "Y": 22.213863709855
}, {
  "X": 114.11262775355,
  "Y": 22.214272283475
}, {
  "X": 114.1133008867,
  "Y": 22.214885143905
}, {
  "X": 114.1133008867,
  "Y": 22.21619257949
}, {
  "X": 114.11164865079,
  "Y": 22.216233436852
}, {
  "X": 114.11152626295,
  "Y": 22.213863709855
}];

var ten_pointed_star = ClipperLib.Clipper.SimplifyPolygon(five_pointed_star, ClipperLib.PolyFillType.pftNonZero);
console.log(ten_pointed_star);

但是,如果我将five_pointed_star更改为以下内容,代码将按预期工作:

代码语言:javascript
复制
var five_pointed_star = [{
  "X": 147,
  "Y": 313
}, {
  "X": 247,
  "Y": 34
}, {
  "X": 338,
  "Y": 312
}, {
  "X": 86,
  "Y": 123
}, {
  "X": 404,
  "Y": 124
}];

你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 08:23:55

多边形使用路径作为参数,路径在文档中具有以下定义:

此结构包含定义单个等高线的IntPoint顶点序列(另见术语)。路径可以是开放的,表示一系列由两个或多个顶点所包围的线段,也可以是封闭的,表示多边形。路径是否打开取决于上下文。闭合路径可以是“外部”轮廓,也可以是“洞”轮廓。它们取决于方向。

IntPoint读到:

IntPoint结构用于表示剪刀库中的所有顶点。

所以这意味着你需要给它的数字,必须是整数,而你试图使用浮点数,或者是浮点数。因此,如果您使用整数,它应该总是工作良好,如果您的计算返回浮动,您可以使用四舍五入的方法,如地板(),以摆脱后的值点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49293934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档