Некоторое время назад мне пришлось строить полярные данные и искать что-то похожее.Я не знаю, соответствует ли это вашим потребностям, но я адаптировал свое решение к вашей проблеме, вот оно:
theta=(0:360)'*pi/180;
r=(0:0.1:1)';
value=repmat([360 (1:360)],size(r,1),1);
[THETA,R]=meshgrid(theta,r);
[X,Y]=pol2cart(THETA,R);
surf(X,Y,value,'edgecolor','none');
view(0,90);
ОБНОВЛЕНИЕ : Вы абсолютно правы, Андрей, и я подозреваю, что3D-графика занимает больше памяти и, следовательно, отображает намного медленнее, но в то время я не нашел другого пути.Ваше решение лучше, я буду использовать его с этого момента.Единственное, что я хотел бы изменить, это цикл for
:
r=1;
dtheta=0.01;
theta=linspace(0,2*pi,100)';
n=numel(theta);
[x,y]=pol2cart(theta,r);
figure;
cmap=colormap(jet);
X=[zeros(1,n-1);x(1:end-1)';x(2:end)';zeros(1,n-1)];
Y=[zeros(1,n-1);y(1:end-1)';y(2:end)';zeros(1,n-1)];
C=numel(cmap)*(1:n-1)/n-1;
patch(X,Y,C,'EdgeAlpha',0);
axis equal;