明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1318|回复: 3

一个数学问题?

[复制链接]
发表于 2006-5-20 13:38:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2006-5-22 19:11:32 编辑

已知矢量 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)

这样操作对吗?

发表于 2006-5-22 16:25:00 | 显示全部楼层

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

 楼主| 发表于 2006-5-22 19:10:00 | 显示全部楼层

我根据http://bbs.mjtd.com/forum.php?mod=viewthread&tid=48974这里的线段相交判断方法,写的判断程序好像有点错误,大家帮我看看

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 V1  As Double, V2 As Double
Dim V3  As 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_1 < Xmin_2 Or Xmin_1 > Xmax_2 Or Ymin_1 > Ymax_2 Or Ymax_1 < Ymin_2 Then   '两线段最小矩形不相交,得出两线段不相交
   L2L_Intersect = False
   Exit Function
Else   '利用向量的叉积性质,当其中一条线段的两个端点在另一条线段的同一侧时,不相交。否则,相交。
   V1 = (C(0) - A(0)) * (B(1) - A(1)) - (B(0) - A(0)) * (C(1) - A(1))
   V2 = (B(0) - A(0)) * (D(1) - A(1)) - (D(0) - A(0)) * (B(1) - A(1))
   V3 = (A(0) - C(0)) * (D(1) - C(1)) - (D(0) - C(0)) * (A(1) - C(1))
   V4 = (D(0) - C(0)) * (D(1) - C(1)) - (B(0) - C(0)) * (D(1) - C(1))
   If V1 * V2 >= 0 And V3 * V4 >= 0 Then
      L2L_Intersect = True
   End If
End If
End Function

这个程序对有些图形判断正确有些有错误,我上传的图中两线段就判断出错,不知道为什么,大家帮我看看,

 楼主| 发表于 2006-5-25 15:54:00 | 显示全部楼层

没人肯帮忙!!!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 02:26 , Processed in 0.574721 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表