我被要求找到在 MATLAB 中绘制圆的不同方法,
看起来很无聊。但是我可以想出一些想法(有些可能效率低下!),
方法一
ezpolar(@(x)1);
方法二
t = linspace(0,2*pi,100);
plot(sin(t),cos(t));
方法三
[X,Y,~] = cylinder(1,100);
plot(X(1,:),Y(1,:));
方法四
ezplot('x^2 + y^2 - 1');
方法五
theta = linspace(0,2*pi,100);
ro = ones(1,100);
[X,Y] = pol2cart(theta,ro);
plot(X,Y);
它变得有趣了。
我很好奇你是否有其他想法。
谢谢。
编辑
方法十一
azimuth = linspace(-pi,pi,100);
r = ones(1,100);
elevation = zeros(1,100);
[X,Y,Z] = sph2cart(azimuth,elevation,r);
patch(X,Y,Z)
%% (not sure how it works! any improvement suggestions?)
最佳答案
如果要去极坐标,那还有
方法六
theta = linspace(0,2*pi,100);
rho = ones(1,100);
polar(theta, rho)
方法七
ezpolar('1') % Shortest?
您还可以利用复数和 how they're handled通过情节
:
方法八
theta = linspace(0,2*pi,100);
rho = ones(1,100);
z = rho.*exp(1i*theta);
plot(z)
以上可以在一行中完成。它也可以绘制为:
plot(real(z),imag(z))
方法九
plot(0,0,'o','MarkerSize',100)
方法10
text(0,0,'\circ','FontSize',200)
很多other unicode characters可用于制作圆圈。
您可以将其扩展为使用微分方程生成圆,例如 circular orbits和通告limit cycles (Hopf 振荡器)。
关于matlab - 在 MATLAB 中绘制圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703159/