请高手帮忙看一段code,十万火急!

famoushzb famoushzb 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
Dim x1 As Single, y1 As Single
Dim x2 As Single, y2 As Single
Dim x3 As Single, y3 As Single
Dim x4 As Single, y4 As Single
Dim m1 As Single, n1 As Single
Dim m2 As Single, n2 As Single
Dim flag As Integer
Dim r As Long
Dim d As Long
Dim s As Integer

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Command2_Click()
Picture1.Cls
x1 = x2 = x3 = x4 = 0
y1 = y2 = y3 = y4 = 0
flag = r = d = s = 0
End Sub

Private Sub Form_Load()
Form4.Height = MDIForm1.ScaleHeight
Form4.Width = MDIForm1.ScaleWidth
Form4.Top = 0
Form4.Left = 0
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim k As Long
Dim a As Long
Dim b As Long
Dim c As Long
If s = 0 Then
If flag = 0 Then
Picture1.Cls
x1 = x2 = x3 = x4 = 0
y1 = y2 = y3 = y4 = 0
x1 = X
y1 = Y
flag = 1
Else
x2 = X
y2 = Y
r = Sqr(Abs(x1 - x2) ^ 2 + Abs(y1 - y2) ^ 2)
Picture1.Circle (x1, y1), r
flag = 0
s = 1
End If
Else
If flag = 0 Then
x3 = X
y3 = Y
flag = 1
Else
x4 = X
y4 = Y
Picture1.Line (x3, y3)-(x4, y4)
flag = 0
s = 0
End If
End If
If (x1 * y1 * x2 * y2 * x3 * y3 * x4 * y4) <> 0 Then
k = (y4 - y3) / (x4 - x3)
d = Abs(k * x1 - y1 + y3 - k * x3) / Sqr(k ^ 2 + 1)
a = k ^ 2 + 1
b = -2 * (x1 + k ^ 2 * x3 + k * y1 - k * y3)
c = x1 ^ 2 + k ^ 2 * x3 ^ 2 - 2 * k * y3 * x3 + y3 ^ 2 + 2 * k * y1 * x3 - 2 * y1 * y3 + y1 ^ 2 - r ^ 2
If (d = r) Then
m1 = Sqr(c)
n1 = k * (m1 - x3) + y3
End If
If (d < r) Then
m1 = (-b - Sqr(Abs(b ^ 2 - 4 * a * c))) / (2 * a)
n1 = k * (m1 - x3) + y3
m2 = (-b + Sqr(Abs(b ^ 2 - 4 * a * c))) / (2 * a)
n2 = k * (m2 - x3) + y3
End If
Else
a = b = c = d = k = m1 = m2 = n1 = n2 = 0
End If
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If m1 * n1 * m2 * n2 <> 0 Then
If (d = r) Then
Call catch(m1, n1, X, Y)
End If
If (d < r) Then
Call catch(m1, n1, X, Y)
Call catch(m2, n2, X, Y)
End If
End If
Call catch(x1, y1, X, Y)
Call catch(x3, y3, X, Y)
Call catch(x4, y4, X, Y)
Call catch((x3 + x4) / 2, (y3 + y4) / 2, X, Y)
End Sub
Private Sub catch(u As Single, v As Single, X As Single, Y As Single)
If ((u - X) * (u - X) + (v - Y) * (v - Y)) < 10000 Then
Picture1.Circle (u, v), 50, RGB(255, 0, 0)
Else
Picture1.Circle (u, v), 50, Picture1.BackColor
End If
End Sub
以上代码要事先画一个圆和一条直线,根据直线和圆的交点个捕捉交点,可是执行后就不能很准确地捕捉交点,不是哪里出错了,请哪位高手帮忙看一看,谢谢了!
...全文

相关推荐

解决VS Code报检测到#include错误,请更新includepath的问题

"在使用Visual Studio Code (VS Code)进行C/C++开发,特别是PHP扩展开发时,可能会遇到一个常见的问题,即VS Code提示‘检测到#include错误, 请更新inc

weixin_38503233

人脸图像识别在宿舍管理系统中的应用与部署调优

人脸图像识别是计算机视觉走向工程实践的重要分支,其核心原理是将人脸图像通过检测、对齐、特征提取转化为高维数值向量,再以特征比对方式完成身份确认。在校园宿舍管理场景中,这项技术可替代传统人工查寝和门禁刷卡,自动记录归寝时间、识别晚归并预警陌生人,极大提升运维效率。技术选型上,从OpenCV的传统算法到Dlib、FaceNet等深度学习模型,开发者可根据场景规模与硬件条件灵活取舍。系统实现涉及数据库建模、接口设计、摄像头部署与阈值调优等关键环节,结合宿舍管理系统实例,剖析了从特征提取到业务联动的完整落地路径,为

Lang Run

vs-code-clippy:令人毛骨悚然! 在VS Code上!

【标题】"vs-code-clippy:令人毛骨悚然!在VS Code上!"

无分别

sdr-code-camp:学习一些代码!

sdr-code-camp 学习一些代码!建立和部署网站设置开始之前,请确保您下载以下内容: 完成此操作后,您需要派生 repo。 确保将其分叉到您的用户名下!了解您的终端机伟大的! 你们都准备好了。

按剑四顾

fund_code!fund_code

标题中的"fund_code!fund_code"以及描述中的重复"fund_codefund_codefund_codefund_code",似乎在强调一个核心概念——"fund_code"。

ghc_ghc
评论 1
收藏 已收藏
分享
返回顶部
famoushzb
VB基础类 7,788 成员 197,583 内容