% snowcone.m  

theta = (0:1:36)*pi/18;
rho = [0 1]';
x = rho*cos(theta)*sin(pi/6);
y = rho*sin(theta)*sin(pi/6);
z = rho*ones(size(theta))*cos(pi/6);
cone = surf(x,y,z);
axis square

c1 = [1 1]'*cos(theta);  % setting colors
set(cone,'CData',c1); % 
hold on
phi = (0:1:6)'*pi/36; 
X = sin(phi)*cos(theta); 
Y = sin(phi)*sin(theta); 
Z = cos(phi)*ones(size(theta)); 
cap = surf(X,Y,Z); 

c2 = (2:1:8)'*cos(theta)/8;  % set color matrix to match bottom cone 
set(cap,'CData',c2)
view(-37.5,20);