2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 [MATLAB] Как для каждой поверхности задать свой цвет?
Сообщение17.12.2021, 20:36 
Нужно на одном рисунке вывести несколько сфер, каждую своим цветом. У меня все они окрашиваются в цвет последней, т.е. по последней colormap. Что делаю не так?

код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
sc=7;
phi=pi/7;
 
co = @(z) cos(z*4*pi/7+phi)*sc;
si = @(z) sin(z*4*pi/7+phi)*sc;
[sx,sy,sz] = sphere(6);
 
col=[
  1    0.89 0     % a
  0.5  0.5  0.5   % b
  0.5  0.5  0.5   % c
  0.79 0.37 0.58  % d
  0.44 0.6  0     % e
  0.5  0.5  0.5   % f
  1    0.6  0     % g
  1    0.89 0     % a
];
 
z=0:0.01:7;
x=co(z);
y=si(z);
 
n=length(z);
 
figure(1)
clf
for i=1:n-1
  plot3(x(i:i+1),y(i:i+1),z(i:i+1),...
    'LineWidth',2, 'Color',[0.5,0.5,0.6])
  hold on
end
 
for z=0:7
  p=surf(sx+co(z),sy+si(z),sz+z);
  colormap(col(z+1,:))
  alpha(p, 0.4)
end
 

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group