求最佳解法

kook 2007-02-09 01:48:43
VB6里面如何判断两条平行线是否相交?求最佳解法
...全文
206 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
fankun 2007-02-09
  • 打赏
  • 举报
回复
c里面的老帖了,这个问题很复杂,人家还专门编了书来解
kook 2007-02-09
  • 打赏
  • 举报
回复
好像是我没说清楚,另外又发了新贴,希望大家帮帮忙。这里分数分掉算了
T2 2007-02-09
  • 打赏
  • 举报
回复
ZOU_SEAFARER(颓废程序员^_^)
如果左三段在一条直线上,其中一段就当作一条直线即可!!

难道T2(無藥可救)要的是视觉上要相交才叫相交?就是在界面上不交就是不相交

我认为====="两条在同一平面上的线段是否相交的最佳解法" 不是说就是界面上交上了才叫相交吧?
----------------------------------------------
直线和线段难道一样???!!!无语了
ZOU_SEAFARER 2007-02-09
  • 打赏
  • 举报
回复
\ /
\ /
\ /

如果左三段在一条直线上,其中一段就当作一条直线即可!!

难道T2(無藥可救)要的是视觉上要相交才叫相交?就是在界面上不交就是不相交

我认为====="两条在同一平面上的线段是否相交的最佳解法" 不是说就是界面上交上了才叫相交吧?




pasl 2007-02-09
  • 打赏
  • 举报
回复
我觉得可以这样解决,
先直线通式 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之间,则有交点,否则没有
pasl 2007-02-09
  • 打赏
  • 举报
回复
比较斜率,对直线是可以用的,对于线段就不行了
T2(無藥可救)说的有道理,
因为线段有区间的,斜率不同的线段也可能不相交
guyehanxinlei 2007-02-09
  • 打赏
  • 举报
回复
应该从斜率这个角度看解决问题吧?
T2 2007-02-09
  • 打赏
  • 举报
回复
TO:ZOU_SEAFARER(颓废程序员^_^)
你用你的这段代码,一试就知道了。你只是用两条线的斜率K1,K2来判断,
\ /
\ /
\ /
你觉得这两条线段是相交还是不相交?
ZOU_SEAFARER 2007-02-09
  • 打赏
  • 举报
回复
线段也得给出 2个坐标(x1,y1) (x2,y2)
请 T2(無藥可救)详细描述一下你的线段

ZOU_SEAFARER 2007-02-09
  • 打赏
  • 举报
回复
线段是什么? 和我上面你能延长就是直线,不延长不是线段了?
T2 2007-02-09
  • 打赏
  • 举报
回复
ZOU_SEAFARER(颓废程序员^_^) 的程序可以判断直线,但是不能判断线段。
楼主提的问题可高深了,以前有好多人提过了,在不计算线段点的情况下判断是否相交的算法.
ZOU_SEAFARER 2007-02-09
  • 打赏
  • 举报
回复
Option Explicit
Const xx As Double = 0.0000001
Private Sub Command1_Click()
MsgBox IsConnect(Line1, Line2)
End Sub

Public 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
ZOU_SEAFARER 2007-02-09
  • 打赏
  • 举报
回复
求比例,下降或者升高的比例

如果是一样必定不相交...........................
比例为DOUBLE 精确
kook 2007-02-09
  • 打赏
  • 举报
回复
错了,不好意思:)是判断两条在同一平面上的线段是否相交的最佳解法
yachong 2007-02-09
  • 打赏
  • 举报
回复
平行线肯定不相交
两条直线就得好好考虑考虑了
不会,帮顶
呵呵

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧