7,789
社区成员
发帖
与我相关
我的任务
分享
'计算交点坐标
Dim CX As Double
Dim CY As Double
If Line1.A = Line2.A Then
MsgBox "两条平行线,不可能相交"
Else
CX = (Line2.B - Line1.B) / (Line1.A - Line2.A)
CY = Line1.A * CX + Line1.B
MsgBox "交点X坐标为:" & CX
MsgBox "交点Y坐标为:" & CY
'判断交点的X坐标是否在 L1.X1与 L1.X2之间.(起始点与终止点)
'判断交点的X坐标是否在 L2.X1与 L2.X2之间就知道是否相交了.
if CX>=L1.X1 and Cx<=L1.X2 then
if Cx>=L2.X1 and Cx<=L2.X2 then
'这样条线,可以看到交点,不用延伸
else
'这样条线,不可以看到交点,L2线要进行延伸
end if
end if
End If
'以下代码是求两条直线的交点的.
'直线的线方程为 A*X+B=Y
'你可以按照我下成的理论计算两条曲线的交点.
'曲线方程一般是(不能引申到全部.但一般都有方程式:如圆的是 X^2+Y^2=R^2):A*X^2+B*X+C=Y
Option Explicit
Private Type LineFunction
A As Double
B As Double
End Type
Private Line1 As LineFunction
Private Line2 As LineFunction
'设定窗体中有二条直线 L1 与 L2 .请用Line控件
Private Sub Command1_Click()
'先求出两条直线的方程
Line1.A = (L1.Y1 - L1.Y2) / (L1.X1 - L1.X2)
Line1.B = L1.Y1 - Line1.A * L1.X1
Line2.A = (L2.Y1 - L2.Y2) / (L2.X1 - L2.X2)
Line2.B = L2.Y1 - Line2.A * L2.X1
'计算交点坐标
Dim CX As Double
Dim CY As Double
If Line1.A = Line2.A Then
MsgBox "两条平行线,不可能相交"
Else
CX = (Line2.B - Line1.B) / (Line1.A - Line2.A)
CY = Line1.A * CX + Line1.B
MsgBox "交点X坐标为:" & CX
MsgBox "交点Y坐标为:" & CY
End If
End Sub