matlab中画圆
(2012-12-08 01:01:08)
标签:
matlab教育 |
分类: matlab |
问题一:只画圆
(1)直接输入方式
alpha=0:pi/20:2*pi;%角度[0,2*pi]
R=2;%半径
x=R*cos(alpha);
y=R*sin(alpha);
plot(x,y,'o-')
axis equal
(2)利用自编函数
把以下程序存为circle.m
function circle(R)
alpha=0:pi/50:2*pi;%角度[0,2*pi]
%R=2;%半径
x=R*cos(alpha);
y=R*sin(alpha);
plot(x,y,'-')
axis equal
用的时候
>> circle(3)
3是半径
(3)画单位圆或者是椭圆的说明
Matlab没有提供直接绘圆的图元函数,需要自己写代码,其实
就两句:
sita=0:pi/20:2*pi;
plot(r*cos(sita),r*sin(sita)); %半径为r的圆
plot(a*cos(sita+fi),b *sin(sita+fi)); %椭圆
如果是单位圆,可以使用rectangle('Curvature', [1 1])
plot(r*cos(sita),r*sin(sita)); %半径为r的圆
plot(a*cos(sita+fi),b *sin(sita+fi)); %椭圆
如果是单位圆,可以使用rectangle('Curvature', [1 1])
问题二:生成类似表盘那种带刻度的圆
问题说明:整个圆以10刻度划分,并顺时针从顶部以0°、30°、60°……330°标记。
生成的圆就好像表盘一样,有刻度标记但不是条条直径,而且标记是每隔30°标记,还有从最顶端开始以0°标记。
hold
on;
ezplot('x^2+y^2-1'); %画一个圆先
for t=0:10:350 %循环
theta=t/180*pi; %角度转换到弧度
polar([theta,theta],[0,1]); %画分割线
if mod(t,30)==0
text(1*cos(theta),1*sin(theta),sprintf('%.0f°',t)); %标字
end
end
ezplot('x^2+y^2-1'); %画一个圆先
for t=0:10:350 %循环
theta=t/180*pi; %角度转换到弧度
polar([theta,theta],[0,1]); %画分割线
if mod(t,30)==0
text(1*cos(theta),1*sin(theta),sprintf('%.0f°',t)); %标字
end
end
前一篇:欢迎您在新浪博客安家