MATLAB没有提供绘制圆弧的函数,但是,用直线可以逼近曲线。下面这段程序利用构造圆弧的数学模型,在给定圆心、半径、起始角和终止角的情况下,用line函数绘制圆弧。
需要注意的是,MATLAB将二维坐标系中Y轴向上的方向定为0度方向,而我们习惯上将X轴正向定为0度方向。程序中进行了调整。在M文件编辑器中输入下面的代码以后,保存为arc.m。
code.matlab
function arc(x,y,radius,ang1,ang2)
% arc函数,顺时针方向绘圆弧
% x,y为圆心坐标,radius为半径
% ang1为初始角,ang2为终止角
if radius>0
% 重新计算起始角和终止角
ang1=450-ang1;
ang2=450-ang2;
if ang1>=360 && ang2>=360
angtemp=ang1;
ang1=ang2;
ang2=angtemp;
elseif ang1>=360
ang1=ang1-360;
elseif ang2>=360
ang2=ang2-360;
end
% 以弧度计算
ang1=ang1/180*pi;
ang2=ang2/180*pi;
% 绘制圆弧
t=ang1:pi/40:ang2;
line(sin(t)*radius+x,cos(t)*radius+y)
end
% 绘圆心
rectangle('position',[x-1,y-1,2,2])
% 调整坐标
axis equal
生成该M文件以后,将保存路径作为当前路径,在命令窗口键入下面的命令,绘制圆心为(20,10),半径为100,起始角为45度,终止角为315度的圆弧。注意,该程序沿顺时针方向绘圆弧。
code.matlab
>> arc(20,10,100,45,315)
生成图7-1。其中小矩形表示圆心。
\[\]
图7-1 创建圆弧