怎样用Matlab 过已知三个点画圆?

比如有三个点a(1,0),b(2,3),c(3,2),我想过这三个点画一个圆,然后找出它的圆心,怎么样用matlab求得呢?我知道求圆心,连接任意两个点,然后过其中点,做... 比如有三个点 a(1,0),b(2,3),c(3,2),我想过这三个点画一个圆,然后找出它的圆心,怎么样用matlab求得呢?
我知道求圆心,连接任意两个点,然后过其中点,做垂线,相交就得到圆心了,但是怎么样用matlab来做呢?
哪为高人可以帮帮小妹呢?
展开
 我来答
化学工程
2009-06-04 · TA获得超过8900个赞
知道大有可为答主
回答量:2212
采纳率:80%
帮助的人:3334万
展开全部
这样写更有通用性:

clc;clear
xy=[1 0;2 3;3 2] %a(1,0),b(2,3),c(3,2)
syms x0 y0 R
f=(xy(:,1)-x0).^2+(xy(:,2)-y0).^2-R^2 %版本太低可能不行
[R,x0,y0]=solve(f(1),f(2),f(3))
R=eval(R(1)),x0=eval(x0(1)),y0=eval(y0(1))%把符号变量转换成数值
t=0:pi/20:2*pi;
x=R*cos(t)+x0;y=R*sin(t)+y0;
plot(x,y,[xy(:,1);xy(1,1)] ,[xy(:,2);xy(1,2)])%三角形
axis equal,grid
figure
plot(x,y,xy(:,1) ,xy(:,2),'*r')
axis equal,grid

结果:
xy =

1 0
2 3
3 2

f =

(1-x0)^2+y0^2-R^2
(2-x0)^2+(3-y0)^2-R^2
(3-x0)^2+(2-y0)^2-R^2

R =

1/2*10^(1/2)
-1/2*10^(1/2)

x0 =

3/2
3/2

y0 =

3/2
3/2

R = 1.5811
x0 = 1.5000
y0 = 1.5000

图形见:
http://hi.baidu.com/chemical%5Fengineering/album/item/e091ca80b45e5df29023d91f.html
csg974
2009-06-03 · TA获得超过5020个赞
知道小有建树答主
回答量:915
采纳率:0%
帮助的人:1268万
展开全部
求外心坐标,就是外心到三个顶点距离相等,用matlab解方程就可以得到
>> [x,y]=solve('(x-1)^2+(y-0)^2=(x-2)^2+(y-3)^2', '(x-1)^2+(y-0)^2=(x-3)^2+(y-2)^2')

x =

3/2

y =

3/2

所以外接圆圆心为(3/2, 3/2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友547b50fd9
2009-06-03 · TA获得超过1154个赞
知道小有建树答主
回答量:832
采纳率:0%
帮助的人:566万
展开全部
首先求出圆心的位置,很简单,到三点距离都相等的点就行了阿!
语句如下所示
[x,y]=solve('(x-1)^2+(y-0)^2=(x-2)^2+(y-3)^2', '(x-1)^2+(y-0)^2=(x-3)^2+(y-2)^2')
然后求出半径
R=sqrt((x-1)^2+(y-0)^2)
然后 使用参数方程求解即可
X=x+R*cos(0:0.01:2*pi);
Y=y+R*sin(0:0.01:2*pi);
最后画图
plot(X,Y)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式