none
多边形合并并取得顶点 RRS feed

  • 问题

  • 你好!

    已知一个省各市县的边界坐标点,想取得该省的边界点。该怎么合并后取得省的边界坐标点?Polygon类的Points属性是取出所有点,要怎么筛选出多边形的顶点?请指教!

    2010年4月8日 15:12

答案

  • 设边界点为 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
    2010年4月9日 7:13

全部回复

  • 你好!

    第一个问题不太明白。第二个问题,若你说的顶点是指最上面的点,那么 Y 坐标最小的 Point 即顶点。


    知识改变命运,奋斗成就人生!
    2010年4月9日 1:30
    版主
  • 你好!

    已知一个省各市县的边界坐标点,合并后形成省的多边形。之后怎么样取得省多边形最外围的各个点?

    2010年4月9日 2:14
  • 设边界点为 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
    2010年4月9日 7:13