nxy_918 发表于 2006-5-20 13:38:00

一个数学问题?

已知矢量 A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4)
那么得到矢量A-B=(x1-x2,y1-y2), C-D=(x3-x4,y3-y4)
那么(A-B)*(C-D)是不是等于
(x1-x2,y1-y2)*(x3-x4,y3-y4)
=(x1-x2)*(y3-y4)-(x3-x4)*(y1-y2)

还有就是如果A、B、C、D为四个点,那么有向线段AB是不是可以表达成矢量A-B,即(x1-x2,y1-y2), 同理有向线段CD为C-D=(x3-x4,y3-y4)
这样操作对吗?

fjfhgdwfn 发表于 2006-5-22 16:25:00

还不如把你想干什么写出来好呢!“*”与“×”是有区别的啊

nxy_918 发表于 2006-5-22 19:10:00

我根据这里的线段相交判断方法,写的判断程序好像有点错误,大家帮我看看
Function L2L_Intersect(A() As Double, B() As Double, C() As Double, D() As Double) As Boolean
Dim Xmax_1, Xmax_2, Xmin_1, Xmin_2, Ymax_1, Ymax_2, Ymin_1, Ymin_2 As Double
Dim V1As Double, V2 As Double
Dim V3As Double, V4 As Double
If A(0) > B(0) Then
   Xmax_1 = A(0)
   Xmin_1 = B(0)
Else
   Xmax_1 = B(0)
   Xmin_1 = A(0)
End If
If A(1) > B(1) Then
   Ymax_1 = A(1)
   Ymin_1 = B(1)
Else
   Ymax_1 = B(1)
   Ymin_1 = A(1)
End If
If C(0) > D(0) Then
   Xmax_2 = C(0)
   Xmin_2 = D(0)
Else
   Xmax_2 = D(0)
   Xmin_2 = C(0)
End If
If C(1) > D(1) Then
   Ymax_2 = C(1)
   Ymin_2 = D(1)
Else
   Ymax_2 = D(1)
   Ymin_2 = C(1)
End If
L2L_Intersect = False
If Xmax_1Xmax_2 Or Ymin_1 > Ymax_2 Or Ymax_1 = 0 And V3 * V4 >= 0 Then
      L2L_Intersect = True
   End If
End If
End Function
这个程序对有些图形判断正确有些有错误,我上传的图中两线段就判断出错,不知道为什么,大家帮我看看,

nxy_918 发表于 2006-5-25 15:54:00

没人肯帮忙!!!
页: [1]
查看完整版本: 一个数学问题?