资源简介
已知三点,求过三点的圆的半径,和圆心坐标若三点在同一直线上或有两点重叠则返回覆盖三点的最小圆半径 开发环境 Matlab使用方法 circle([3 4],[7 8],[1 1])
代码片段和文件信息
%已知三点,求过三点的圆的半径,和圆心坐标
%若三点在同一直线上或有两点重叠则返回覆盖三点的最小圆半径
%开发环境 Matlab
%使用方法 circle([3 4][7 8][1 1])
%@author 孤星赶月
%QQ:450219927
%email:pfa2008@126.com
function R=circle(ABC) %传入A、B、C三点
X=[A(1) B(1) C(1)];
Y=[A(2) B(2) C(2)];
if((Y(1)==Y(2)) & (Y(2)==Y(3))) %纵坐标都相同时
R=(max(X)-min(X))/2;
elseif((X(1)==X(2)) & (X(2)==X(3))) %横坐标都相同时
R=(max(Y)-min(Y))/2;
elseif(sum(A==B)==2) %当A与B坐标相同时
R=sqrt((A(1)-C(1))^2+(A(2)-C(2))^2)/2;
elseif(sum(A==C)==2) %当A与C坐标相同时
R=sqrt((A(1)-B(1))^2+(A(2)-B(2))^2)/2;
elseif(sum(B==C)==2) %当B与C坐标相同时
R=sqrt((A(1)-B(1))^2+(A(2)-B(2))^2)/2;
elseif((Y(1)~=Y(2)) & (Y(2)~=Y(3)))
k1=(X(2)-X(1))/(Y(2)-Y(1));
k2=(X(3)-X(2))/(Y(3)-Y(2));
k3=(X(1)-X(3))/(Y(1)-Y(3));
if((k1==k2) | (k2==k3) | (k1==k3)) %斜率相等时求距离最远两点的一半
R=max([sqrt((X(1)-X(2))^2+(Y(1)-Y(2))^2)sqrt((X(2)-X(3))^2+(Y(2)-Y(3))^2)sqrt((X(1)-X(3))^2+(Y(1)-Y(3))^2)])/2;
else
R=NewCircle(XY);
end
else % (x-a)^2+(y-b)^2=r^2
R=NewCircle(XY);
end
function R=NewCircle(XY)
a=(((X(1)^2-X(2)^2+Y(1)^2-Y(2)^2)*(Y(2)-Y(3)))-((X(2)^2-X(3)^2+Y(2)^2-Y(3)^2)*(Y(1)-Y(2))))/(2*(X(1)-X(2))*(Y(2)-Y(3))-2*(X(2)-X(3))*(Y(1)-Y(2)))
b=(((X(1)^2-X(2)^2+Y(1)^2-Y(2)^2)*(X(2)-X(3)))-((X(2)^2-X(3)^2+Y(2)^2-Y(3)^2)*(X(1)-X(2))))/(2*(Y(1)-Y(2))*(X(2)-X(3))-2*(Y(2)-Y(3))*(X(1)-X(2)))
R=sqrt((X(1)-a)^2+(Y(1)-b)^2);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1545 2008-05-28 21:45 circle.m
----------- --------- ---------- ----- ----
1545 1
- 上一篇:二进制对称信道互信息
- 下一篇:simuli
nk_RTW的汽车电子控制系统的研究
相关资源
- 二进制对称信道互信息
- 仿真mimo的matlab代码
- NBI消除窄带干扰消除
- matlab中画箭头的函数
- 矩阵实验室Matlab最新版r2009b破解激活
- 用matlab实现lz编码的源程序
- 用matlab实现huffman编码的m文件
-
matlab pid fuzzy simuli
nk - 基于空间矢量控制的matlab模型
- 刘金琨机器人控制系统的设计与Matl
- 材料力学中的挠曲线绘图MATLAB程序
- 基于小波的神经网络matlab代码
- 利用MATLAB对图像进行DCT变换的代码
- 迭代学习,matlab仿真源码,实用
- arma matlab 代码
- 170421NMS算法matlab程序
- 贝叶斯最小错误分类器 matlab
- OFDM系统实现matlab程序发送到接收的每
- matlab仿真雷达SAR点目标成像算法
- 如何将Excel中的数据导入MATLAB并在MA
- matlab 手写数字/字母模式识别
- 数字图像相关算法
- ofdm符号定时与频偏联合估计算法mat
- goldstein 滤波
- 双摆的MATLAB模拟
- 基于MATLAB的MIMO通信系统仿真
- 消失点检测程序
- matlab混合高斯背景建模
- 系统辨识参数辨识matlab程序
- 解决MATLab2012b Symbolic_Toolbox License 许可
评论
共有 条评论