开发者

boolean rectangles to polygon(s)

I am building something where I need to draw multiple rectangles, either adding them or subtracting them, and from that produce one or more polygons that represent the overall area enclosed. This would work like the thing you see in paint programs, etc, where you can create a selection by drawing rectangles and clicking the + or - button to determine whether to add or subtract from the current selected area.

I can do all the drawing code, but need to know how to convert an ordered series of rectangles, each with a mode of "add" or "subtract", into one or more polygons. Here is how I envision it being used:

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 polygon开发者_Python百科List =  getPolygonsFromRectangleList (rectList);

The polygonList might look like this (an array of arrays of points). (The numbers below are just made up and have nothing to do with the input above)

[
 [
  {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},
  ... 
 ]

I imagine this must be a pretty standard graphics gem sort of thing.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜