VB6里面如何判断两条平行线是否相交?求最佳解法

解决方案 »

  1.   

    求比例,下降或者升高的比例如果是一样必定不相交...........................
    比例为DOUBLE 精确
      

  2.   

    Option Explicit
    Const xx As Double = 0.0000001
    Private Sub Command1_Click()
        MsgBox IsConnect(Line1, Line2)
    End SubPublic Function IsConnect(Line1 As Line, Line2 As Line) As Boolean
        IsConnect = False    Dim Rate1 As Double
        Dim Rate2 As Double
        If Line1.X2 = Line1.X1 Then
            Rate1 = 0
        Else
            Rate1 = (Line1.Y2 - Line1.Y1) / (Line1.X2 - Line1.X1)
        End If    If Line2.X2 = Line2.X1 Then
            Rate2 = 0
        Else
            Rate2 = (Line2.Y2 - Line2.Y1) / (Line2.X2 - Line2.X1)
        End If    If Abs(Rate1 - Rate2) > xx Then
            IsConnect = True
        Else
            IsConnect = False
        End If
    End Function
      

  3.   

    ZOU_SEAFARER(颓废程序员^_^) 的程序可以判断直线,但是不能判断线段。
    楼主提的问题可高深了,以前有好多人提过了,在不计算线段点的情况下判断是否相交的算法.
      

  4.   

    线段也得给出 2个坐标(x1,y1) (x2,y2)
    请   T2(無藥可救)详细描述一下你的线段
      

  5.   

    TO:ZOU_SEAFARER(颓废程序员^_^) 
    你用你的这段代码,一试就知道了。你只是用两条线的斜率K1,K2来判断,
    \                /
     \              /
      \            /
    你觉得这两条线段是相交还是不相交?
      

  6.   

    我觉得可以这样解决,
    先直线通式 y=kx+b
    直线1:k1=(y1-y2)/(x1-x2) b1=y1-k1*x1
    直线2:k2=(y3-y4)/(x3-x4) b2=y3-k1*x3
    如果相同,这平行,没有交点,如果不同者求交点
    x=(k1-k2)/(b2-b1)
    如果x再x1和x2之间,或者在x3和x4之间,则有交点,否则没有
      

  7.   

    ZOU_SEAFARER(颓废程序员^_^)
    如果左三段在一条直线上,其中一段就当作一条直线即可!!难道T2(無藥可救)要的是视觉上要相交才叫相交?就是在界面上不交就是不相交我认为====="两条在同一平面上的线段是否相交的最佳解法"  不是说就是界面上交上了才叫相交吧?
    ----------------------------------------------
    直线和线段难道一样???!!!无语了