vb 求两圆交点,已知两圆半径何圆心位置,如何求其交点

 我来答
智慧未来超人
2013-03-16 · TA获得超过422个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:167万
展开全部

 

如图,方法一,根据圆的半径个位置写出圆的方程,联立求交点,不过这种方法交点的最终表达式不容易推导

方法2,两个圆的方程相减得到直线CD的方程,CD方程与AB方程联立求出交点E,在以E为起始点写CD的参数方程,参数方程的x,Y带入任意一个圆中就能求出参数t,从而求出c d的坐标

chiefzjh
2013-03-16 · TA获得超过9088个赞
知道大有可为答主
回答量:7013
采纳率:37%
帮助的人:2327万
展开全部
1. 写出两个圆的方程
2. 循环小圆的x值的范围,每个x对应两个y, 也就是确定了两个点。
3. 把这两个点的位置代入大圆的方程,看能否成立,如成立,就用line做线
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吹花PM
2013-03-16 · TA获得超过946个赞
知道小有建树答主
回答量:635
采纳率:0%
帮助的人:605万
展开全部
'新建工程
Private a As Single, b As Single, r As Single
Private x As Single, y As Single, z As Single
Private Sub Form_Paint()
a = 2000: b = 2000: r = 1000 '圆参数
Me.Circle (a, b), r, vbRed
x = 3500: y = 2000: z = 1500 '圆参数
Me.Circle (x, y), z, vbRed
Call CirEx
End Sub
'求两点距离
Private Function GetLen(px1 As Single, py1 As Single, px2 As Single, py2 As Single) As Single
GetLen = Sqr((px1 - px2) ^ 2 + (py1 - py2) ^ 2)
End Function
'画切线,x,y为圆外点纵横坐标,
Private Sub CirEx()
Dim i As Single, j As Single, s As Single
s = 0.6 '误差
For i = a - r To a + r '横坐标
j = b + Sqr(r ^ 2 - (i - a) ^ 2) '上纵坐标
If Abs(GetLen(i, j, a, b) - r) < s And Abs(GetLen(i, j, x, y) - z) < s Then Exit For
Next i
j = b + Sqr(r ^ 2 - (i - a) ^ 2) '上纵坐标
Me.Line (i, j)-(x, y), vbRed
j = b - Sqr(r ^ 2 - (i - a) ^ 2) '上纵坐标
Me.Line (i, j)-(x, y), vbRed
End Sub
更多追问追答
追问

你的代码很正确,不过我的




还差最后一点了,我想通过用command最后画出切线,可是老是提示错误,应该怎么修改

追答
我看不到错误定位在哪,你可以设置断点调试,可能是参数设置不合理,不明白的地方HI我。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式