我正在构建一些我需要绘制多个矩形的东西,要么添加它们要么减去它们,然后从中生成一个或多个代表整个区域的多边形。这可以像你在绘画程序等中看到的那样,你可以通过绘制矩形并单击+或 - 按钮来确定是否在当前所选区域中添加或减去来创建选择。
我可以完成所有绘图代码,但需要知道如何转换有序的矩形系列,每个矩形的模式为"添加"或者"减去"到一个或多个多边形。以下是我设想它的使用方式:
var rectList = [
{x: 50, y: 40, w: 20, h: 30, mode: "+"},
{x: 24, y: 12, w: 14, h: 62, mode: "+"},
{x: 12, y: 30, w: 34, h: 14, mode: "-"},
{x: 22, y: 21, w: 45, h: 19, mode: "+"},
{x: 17, y: 20, w: 10, h: 21, mode: "+"}
];
var polygonList = getPolygonsFromRectangleList (rectList);
polygonList可能看起来像这样(点数组的数组)。 (下面的数字只是组成,与上面的输入无关)
[
[
{x: 23, y: 12},
{x: 14, y: 12},
{x: 14, y: 36},
{x: 24, y: 36},
....
],
[
{x: 32, y: 45},
{x: 32, y: 22},
{x: 14, y: 22},
...
]
我认为这必须是一个非常标准的图形宝石。