声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5003|回复: 8

[编程技巧] 求助已知3点怎么用MATLAB编程求圆的方程(已作答,含三点画圆的程序)

[复制链接]
发表于 2007-5-14 01:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求助已知3点怎么用MATLAB编程求圆的方程
急需大虾求助, QQ312268755

[ 本帖最后由 huright 于 2007-5-14 09:33 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-14 08:28 | 显示全部楼层
1.三点连成的直线没有斜率,判断条件(y1==y2)&&(y2==y3)

2.判断任意两点连成的直线斜率是否相等。

3.解方程组,设圆心坐标为(x,y)

圆心到任意两点的距离相等,由此求出x,y的表达式,代入程序。

4.求出圆心,半径迎刃而解。
参考程序:
x1=2;y1=4;x2=8;y2=12;x3=14;y3=19;%三点坐标
if((y1==y2)&(y2==y3))
   disp('三点不构成圆!');
elseif((y1~=y2)&(y2~=y3))
   k1=(x2-x1)/(y2-y1);
   k2=(x3-x2)/(y3-y2);
end
   if(k1==k2)
   disp('三点不构成圆!');
   end
   a=2*(x2-x1);
   b=2*(y2-y1);
   c=x2*x2+y2*y2-x1*x1-y1*y1;
   d=2*(x3-x2);
   e=2*(y3-y2);
   f=x3*x3+y3*y3-x2*x2-y2*y2;
   disp('圆心为::');
   x=(b*f-e*c)/(b*d-e*a)
   y=(d*c-a*f)/(b*d-e*a)
   disp('半径为::');
   r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))
剩下的你自己来写吧(plot函数)

[ 本帖最后由 huright 于 2007-5-14 08:46 编辑 ]
cir.bmp

评分

1

查看全部评分

发表于 2007-5-14 09:00 | 显示全部楼层
这只是一个初等几何问题.
发表于 2007-5-14 09:17 | 显示全部楼层
是啊
不过不忍心不作答阿
 楼主| 发表于 2007-5-14 11:18 | 显示全部楼层
不好意思啊,我学的是机械设计的毕业设计竟然做这个
 楼主| 发表于 2007-5-14 11:21 | 显示全部楼层

寻找huright ,

大虾有个问题要问你下 ,留个QQ吧
发表于 2007-5-14 12:06 | 显示全部楼层
mean()函数
发表于 2007-5-14 12:08 | 显示全部楼层
建议cbbkula:(1)找本基础的matlab书籍看上3~5h
(2)多使用google等工具;
(3)多使用matlab的help命令。

[ 本帖最后由 eight 于 2007-5-14 13:06 编辑 ]
 楼主| 发表于 2007-5-14 13:43 | 显示全部楼层
谢谢哈
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 06:33 , Processed in 0.084090 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表