matlab 求点坐标
已知在一个空间直角坐标系中两点的坐标A,B,和C到B的距离,且A,B,C共线,求C的坐标。能不能帮忙解决一下求解的matlab程序...
已知在一个空间直角坐标系中两点的坐标A,B,和C到B的距离,且A,B,C共线,求C的坐标。能不能帮忙解决一下求解的matlab程序
展开
展开全部
好多分啊,求采纳
思路如下:
1、根据A,B得到直线方程
2、根据B和BC距离得到C所在圆的方程
3、根据直线方程和圆的方程交点求C点的位置
程序如下:
clear;
clc
A_x = input('输入点A的横坐标:');
A_y = input('输入点A的纵坐标:');
B_x = input('输入点B的横坐标:');
B_y = input('输入点B的纵坐标:');
R = input('输入BC间距离:');
syms x y
eq1 = (x-A_x)/(B_x-A_x)*(B_y-A_y)+A_y-y; %%%% 直线方程
eq1 = subs(eq1);
eq2 = (x-B_x)^2+(y-B_y)^2-R^2; %%%% 圆的方程
eq2 = subs(eq2);
[x,y]=solve(eq1,eq2); %%%% 求直线和圆的交点
x = double(x);
y = double(y);
fprintf('第一个可能点是(%f,%f)\n',x(1),y(1))
fprintf('第二个可能点是(%f,%f)\n',x(2),y(2))
结果如下:
输入点A的横坐标:1
输入点A的纵坐标:1
输入点B的横坐标:2
输入点B的纵坐标:2
输入BC间距离:2
第一个可能点是(3.414214,3.414214)
第二个可能点是(0.585786,0.585786)
思路如下:
1、根据A,B得到直线方程
2、根据B和BC距离得到C所在圆的方程
3、根据直线方程和圆的方程交点求C点的位置
程序如下:
clear;
clc
A_x = input('输入点A的横坐标:');
A_y = input('输入点A的纵坐标:');
B_x = input('输入点B的横坐标:');
B_y = input('输入点B的纵坐标:');
R = input('输入BC间距离:');
syms x y
eq1 = (x-A_x)/(B_x-A_x)*(B_y-A_y)+A_y-y; %%%% 直线方程
eq1 = subs(eq1);
eq2 = (x-B_x)^2+(y-B_y)^2-R^2; %%%% 圆的方程
eq2 = subs(eq2);
[x,y]=solve(eq1,eq2); %%%% 求直线和圆的交点
x = double(x);
y = double(y);
fprintf('第一个可能点是(%f,%f)\n',x(1),y(1))
fprintf('第二个可能点是(%f,%f)\n',x(2),y(2))
结果如下:
输入点A的横坐标:1
输入点A的纵坐标:1
输入点B的横坐标:2
输入点B的纵坐标:2
输入BC间距离:2
第一个可能点是(3.414214,3.414214)
第二个可能点是(0.585786,0.585786)
更多追问追答
追问
谢谢,我是想问一下如果是在空间直角坐标系中的话该怎么解决,就是再引入一个z
追答
AB两个点只能决定线,无法决定平面,所以如果ABC还是共线的化,答案仍然还是两个点。
所以结果是空间直线和球体的交点问题。
只要参考二维的就行,程序如下:
clear;
clc
A_x = input('输入点A的x坐标:');
A_y = input('输入点A的y坐标:');
A_z = input('输入点A的z坐标:');
B_x = input('输入点B的x坐标:');
B_y = input('输入点B的y坐标:');
B_z = input('输入点B的z坐标:');
R = input('输入BC间距离:');
syms x y z
eq1 = (x-A_x)/(B_x-A_x)*(B_y-A_y)+A_y-y;
eq1 = subs(eq1);
eq2 = (x-A_x)/(B_x-A_x)*(B_z-A_z)+A_z-z;
eq2 = subs(eq2);
eq3 = (x-B_x)^2+(y-B_y)^2+(z-B_z)^2-R^2;
eq3 = subs(eq3);
[x,y,z]=solve(eq1,eq2,eq3);
x = double(x);
y = double(y);
z = double(z);
fprintf('第一个可能点是(%f,%f,%f)\n',x(1),y(1),z(1))
fprintf('第二个可能点是(%f,%f,%f)\n',x(2),y(2),z(2))
结果:
输入点A的x坐标:0
输入点A的y坐标:0
输入点A的z坐标:0
输入点B的x坐标:1
输入点B的y坐标:1
输入点B的z坐标:1
输入BC间距离:2
第一个可能点是(2.154701,2.154701,2.154701)
第二个可能点是(-0.154701,-0.154701,-0.154701)
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
2014-09-13
展开全部
好多年没学习数学了哈,快忘了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询