MATLAB利用fplot函数把一个圆切分成等份的扇形区域

      有时需要把一个圆形区域切割成许多等分的小区域,这里就利用Matlab程序简单实现以下,具体如下:

% 2017/05/01 by DQ
clc;
clear;
close all;
%画一个半径为10,圆心为(0,0)的圆,
%Matlab没有直接画圆的函数,用rectangle代替
Radius=10;
X=-Radius;
Y=-Radius;
W=2*Radius;
H=2*Radius;
pos = [X Y W H];%(X,Y)为矩形的左下角,W H为矩形的宽高
figure;
rectangle('Position',pos,'Curvature',[1 1]);%圆的曲率为[1 1]
set(gca,'YAxisLocation','origin');%设定坐标轴y轴在原点(区域中心处),默认在左下角
set(gca,'XAxisLocation','origin');%设定坐标轴x轴在原点(区域中心处),默认在左下角
set(gca, 'YDir','reverse'); % 逆转y轴,向下
axis equal  %坐标轴等长
set(gca,'ytick',[]);%去掉y坐标轴刻度
set(gca,'xtick',[]);%去掉x坐标轴刻度
axis([-10 10 -10 10]);%约定坐标轴的范围
%经过上述过程,现在的画图区域的坐标系为:原点在区域中心,x轴正方向向右,y轴正方向向下
%下面是执行,从x轴正方向开始,顺时针转动,每过22.5度画一条经过圆心的直线,直到180度
for i=1:180/22.5
    hold on
    f=@(x) tand(i*22.5)*x;%匿名函数,表示直线方程y=kx
    fplot(f,[-15,15]);%画函数曲线
end
xlabel('x');%坐标轴标记
ylabel('y');
%这两个箭头用的不是太明白,参数设置感觉很晦涩,知道的童鞋麻烦告知一声
%annotation('arrow',[0.51 0.51],[0.8 1]);
%annotation('arrow',[0.8 1],[0.108 0.108]);

    运行程序见得到如下图结果:


   是的,就是这个图。程序已经注释详尽不多说,最后注释的两句不太清楚怎么使用,有知道的告知一声。


猜你喜欢

转载自blog.csdn.net/lingyunxianhe/article/details/80383924