VB6.0数学求解

来源:百度知道 编辑:UC知道 时间:2024/06/11 04:06:56
已知点A为(1,2,3), 点B为(30,20,10).分别是坐标X ,坐标Y 和高度
现在A和B的距离为34.8425米
求A到B距离为12米时B的坐标点是多少?
有知道的高手帮下忙,最好能有VB6的写法,事后再追加最高分给你,谢谢了.
不好意思,我补充下,A和B是同一直线上,求同一直线上A到C为12米时C的坐标点是多少

添酒不添愁,你说话注意点,什么叫我靠?
楼主说的是用VB写法,不是直接计算,要直接计算的话,三个等式就可以了。
另外,不好意思,你那个算法是错的。

修改成短一点的:

Private Sub Form_Click()
Dim a As ltd, b As ltd
Dim i As Single, j As Single, k As Single, t As Single
Dim n As Single

a.x = 1: a.y = 2: a.z = 3
b.x = 30: b.y = 20: b.z = 10

n = 0.00001 '控制精度,n越小,精度越高
For i = a.x To b.x Step n '以x轴上的点开始逐点扫描
j = (b.y - a.y) * (i - a.x) / (b.x - a.x) + a.y '对应的y轴上的点
k = (b.z - a.z) * (i - a.x) / (b.y - a.y) + a.z '对应的z轴上的点
t = Sqr((i - a.x) ^ 2 + (j - a.y) ^ 2 + (k - a.z) ^ 2) 'C点到A点的距离
If Abs(t - 12) < n Then Print i; j; k, t
Next
MsgBox "计算完毕!"
End Sub

需要先求出AB的直线方程。

这是数学问题,vb只是用来计算的
直线方程:
(x-1)/(30-1)=(y-2)/(20-2)
(z-3)/(10-3)=(y-2)/(20-2)
距离方程:
(x-1)^2+(y-2)^2+(z-3)^2=12^2

解这3条方程就可以求出x,y,z

farfamed 我靠,你这样做不占资源啊.
Private Sub Form_Load()
Dim x, y, z, x1, x2, y1