这两个线型都不难,建议使用二元二次方程组就能搞定,用VB解二元二次方程组应该会用吧。
创新互联专注于中大型企业的成都网站建设、成都做网站和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户成百上千家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
Public Sub Lpp(x1#, y1#, x2#, y2#, a#, b#, c#) '两点求直线
'输入:直线上两[端]点
'输出:直线的一般式的参数a,b,c
a = y2 - y1
b = x1 - x2
c = -a * x1 - b * y1
End Sub
Public Sub Pll(a1#, b1#, c1#, a2#, b2#, c2#, x#, y#) '两直线交点
'输入:两直线一般式的参数
'输出:点的坐标,存于变量x,y中
dlt = a1 * b2 - a2 * b1
dx = c1 * b2 - c2 * b1
dy = a1 * c2 - a2 * c1
If (Abs(dlt) 0.0000000001) Then
If (Abs(dx) 0.0000000001 And Abs(dy 0.0000000001)) Then
x = 1E+20
y = 1E+20
Else
x = -1E+20
y = -1E+20
End If
Else
x = -dx / dlt
y = -dy / dlt
End If
End Sub
如图,方法一,根据圆的半径个位置写出圆的方程,联立求交点,不过这种方法交点的最终表达式不容易推导
方法2,两个圆的方程相减得到直线CD的方程,CD方程与AB方程联立求出交点E,在以E为起始点写CD的参数方程,参数方程的x,Y带入任意一个圆中就能求出参数t,从而求出c d的坐标
不是已经回答了吗?
运行界面如下图:
在对应的文本框里输入对应的坐标值,单击【计算】,结果将显示在下面一个文本框里,完整代码如下:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x2, y2, x3, y3, x4, y4, x5, y5 As Single
Dim L As Single
x2 = Val(TextBox2.Text)
y2 = Val(TextBox3.Text)
x3 = Val(TextBox4.Text)
y3 = Val(TextBox5.Text)
x4 = Val(TextBox6.Text)
y4 = Val(TextBox7.Text)
'求点P3(x3,y3)与点P4(x4,y4)的直线方程;
'(X-x4)/(x3-x4) = (Y-y4)/(y3-y4) ......(1)
'求过点P2(x2,y2)的水平直线方程为;
'Y = y2 ......(2)
'方程(1)(2) 联立可以求出两条直线的交点(x5,y5)
'由此得到交点坐标为:
x5 = (y2 - y3) * (x4 - x3) / (y4 - y3) + x3
y5 = y2
'求点P2(x2,y2)与点P5(x5,y5)之间的距离
'根据两点之间距离公式有;
L = ((x2 - x5) ^ 2 + (y2 - y5) ^ 2) ^ 0.5
TextBox1.Text = L
End Sub
End Class