cbbkula 发表于 2007-5-14 01:03

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

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

[ 本帖最后由 huright 于 2007-5-14 09:33 编辑 ]

huright 发表于 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 编辑 ]

xjzuo 发表于 2007-5-14 09:00

这只是一个初等几何问题.

huright 发表于 2007-5-14 09:17

是啊
不过不忍心不作答阿

cbbkula 发表于 2007-5-14 11:18

不好意思啊,我学的是机械设计的毕业设计竟然做这个

cbbkula 发表于 2007-5-14 11:21

寻找huright ,

大虾有个问题要问你下 ,留个QQ吧

huright 发表于 2007-5-14 12:06

mean()函数

huright 发表于 2007-5-14 12:08

建议cbbkula:(1)找本基础的matlab书籍看上3~5h
(2)多使用google等工具;
(3)多使用matlab的help命令。

[ 本帖最后由 eight 于 2007-5-14 13:06 编辑 ]

cbbkula 发表于 2007-5-14 13:43

谢谢哈
页: [1]
查看完整版本: 求助已知3点怎么用MATLAB编程求圆的方程(已作答,含三点画圆的程序)