用直线或圆弧画出几个不规则的封闭图形,怎样用简单的方法判断任意两封闭图形的位置关系?也就是一个封闭图形是在另一封闭图形之内还是之外,或是有相交部分。

解决方案 »

  1.   

    你的输入是什么图形还是?
    做二围坐标做
    x1,y1=true 或者 false,在图形内false不在true
    然后两个图形and,看and后true多与前面还是少于and前
      

  2.   

    假设两个封闭图形A、B,A与B的位置关系不知道
    先判断A对B的关系
    A在B中:必须遍历A的边线上的所有点P(X,Y),若P(X,Y)都在B中,那么B包含A;
    A与B交:遍历A的边线上的点P(X,Y),必然存在至少P(X,Y)在B内,一个在B外;
    A在B外:必须遍历A的边线上的所有点P(X,Y),若P(X,Y)都在不B中,那么B不包含A;但可能A包含B;
    再判断B对A的关系
    道理同上
    综合起来就可以得到A与的关系
      

  3.   

    谢谢各位,我是自已在二维坐标系中通过线,弧等画一些不规则图形,所以通过图形的上下左右四点的坐标来判断是行不通的,
    楼上的兄弟方法是对的,但1。因为B不是规则的判断A中所有点都在B中就很复杂,2。如果数据量很大时这样会很费时。
      

  4.   

    我提供一个思路,请看是否可行:
    把图形转化为区域Region;
    使用CombineRgn判断两个区域是否相交。
    使用EqualRgn判断相交区域是否和原始区域相等---如相等则是被包含。