vb求任意两线交点

这是一个VB程序,用于求解任意两条直线的交点。通过定义点和线的结构体,以及计算交点的函数,实现了直线交点的求解。程序中还包含了一个测试部分,展示了如何使用这个函数并根据交点情况给出相应提示。
摘要由CSDN通过智能技术生成

代码:

Option Explicit

Private Type Point
X As Double
Y As Double
End Type

Private Type Lines
P1 As Point
P2 As Point
End Type

Const CROSS As Long = 0 '相交
Const COLINE As Long = 1 '共线
Const PARALLEL As Long = 2 '平行

Private Function GetPoint(L1 As Lines, L2 As Lines, P As Point) As Long
Dim A1 As Double, B1 As Double, C1 As Double
Dim A2 As Double, B2 As Double, C2 As Double
Dim D As Double, R As Double

A1 = L1.P2.Y - L1.P1.Y
B1 = L1.P1.X - L1.P2.X
C1 = L1.P2.X * L1.P1.Y - L1.P1.X * L1.P2.Y

A2 = L2.P2.Y - L2.P1.Y
B2 = L2.P1.X - L2.P2.X
C2 = L2.P2.X * L2.P1.Y - L2.P1.X * L2.P2.Y

D = A2 * B1 - A1 * B2
'Debug.Print A1; B1; A2; B2; C1; C2
If D = 0 Then
If (A1 = A2) And (B1 = B2) Then
GetPoint = COLINE
Else
GetPoint = PARALLEL
End If
Else
P.X = (C1 * B2 - C2 * B1) / D
P.Y = (A1 * C2 - A2 * C1) / D
GetPoint = CROSS
End If
End Function

'测试
Private Sub Command1_Click()
Dim L1 As Lines, L2 As Lines
Dim Pot As Point
Dim R As Long

With L1
.P1.X = -10
.P1.Y = -10
.P2.X = 20
.P2.Y = 20
End With

With L2
.P1.X = 10
.P1.Y = 10
.P2.X = -20
.P2.Y = 20
End With
'PLine L1
'PLine L2
R = GetPoint(L1, L2, Pot)
If R = CROSS Then
MsgBox "X: " & Pot.X & " Y: " & Pot.Y
Else
MsgBox Choose(R, "共线", "平行")
End If

End Sub

求两直线交点程序 [vC源码]

摘自:网络整理

 
 

VB相关

 
 

VB6 中善用ByRef 提升速度

[vb] Set 语句

VB_Format自定义格式

VB如读取内存地址

vb FindwindowEx的用法实例

进制转化进10进制数

收藏:如何获取当前已经打开的IE对象(VB6代码)

DXInput中键码的转换(VB6.0代码)

如何在VB6.0里动态使用具有事件的对象

[vb]格式输出Format函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值