积极答复者
多边形合并并取得顶点

问题
答案
-
设边界点为 A { A1, A2, ... An },合并后,可以得到闭合的 n - 1 条直线。然后任给一点 p,则 p -> 直线 A1A2 | A2A3 | ... | A(n - 1)An。
因此,只需要先按照边界点的 X、Y 坐标从小到大将集合 A 排序,然后就能得到 n - 1 条直线的顶点,任给坐标 (x, y) 则如果
(x, y) 属于任何一条直线,则 (x, y) 就是一个边上的点。判断 p(x, y) 属于直线 l 的方法:
if (p.x >= l.x1 && p.x <= l.x2 && p.y >= l.y1 && p.y <= l.y2) == true,其中 x1 < x2, y1 < y2。
Mark Zhou- 已标记为答案 肖小勇Moderator 2010年4月19日 4:57
全部回复
-
设边界点为 A { A1, A2, ... An },合并后,可以得到闭合的 n - 1 条直线。然后任给一点 p,则 p -> 直线 A1A2 | A2A3 | ... | A(n - 1)An。
因此,只需要先按照边界点的 X、Y 坐标从小到大将集合 A 排序,然后就能得到 n - 1 条直线的顶点,任给坐标 (x, y) 则如果
(x, y) 属于任何一条直线,则 (x, y) 就是一个边上的点。判断 p(x, y) 属于直线 l 的方法:
if (p.x >= l.x1 && p.x <= l.x2 && p.y >= l.y1 && p.y <= l.y2) == true,其中 x1 < x2, y1 < y2。
Mark Zhou- 已标记为答案 肖小勇Moderator 2010年4月19日 4:57