最笨的方法:直接根据顶点坐标,写上一堆||  &&
好的方法:我想不出来。

解决方案 »

  1.   

    如果x1<x2 and x3<x4 and y1<y2 and y3<y4 ,我那天写的就是对的
    如果不是的话可以交换一下再判断
      

  2.   

    function IsCross(X1,Y1,X2,Y2,X3,Y3,X4,Y4){
      if(
          ((x3<x1<x4) && (y3<y1<y4)) ||
          ((x3<x2<x4) && (y3<y1<y4)) ||
          ((x3<x1<x4) && (y3<y2<y4)) ||
          ((x3<x2<x4) && (y3<y2<y4)) 
        )
      {
       return true;
      }else
      {
       return false;
      }
    }
      

  3.   

    刚才的程序有点小错,正确的如下
    function IsCross(x1,y1,x2,y2,x3,y3,x4,y4){
      if(
          (isbet(x1,x3,x4) && isbet(y1,y3,y4)) ||
          (isbet(x2,x3,x4) && isbet(y1,y3,y4)) ||
          (isbet(x1,x3,x4) && isbet(y2,y3,y4)) ||
          (isbet(x2,x3,x4) && isbet(y2,y3,y4)) 
        )
      {
       return true;
      }else
      {
       return false;
      }
    }
    function isbet(a,b,c){
     if((a<c ) && (a>b)){
       return true;
     }else{
       return false;
     }
     
     
    }
      

  4.   

    to  cybernaute(思客)在计算机图形学中,一般考虑任意形状的四边形,而且可以任意摆放。必须采用矢量变换、微分几何的办法。这个例子很简单,只判断顶点就完事了
      

  5.   

    function IsCross(x1,y1,x2,y2,x3,y3,x4,y4){
      return ((isbet(x1,x3,x4) && isbet(y1,y3,y4)) ||
      (isbet(x2,x3,x4) && isbet(y1,y3,y4)) ||
      (isbet(x1,x3,x4) && isbet(y2,y3,y4)) ||
      (isbet(x2,x3,x4) && isbet(y2,y3,y4)));
    }
    function isbet(a,b,c){return ((a<c ) && (a>b));}