创建圆弧

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。其中小矩形表示圆心。

Document Image
\[\]

图7-1 创建圆弧