matlab中三维图形的颜色怎么设置? 10
怎样才能跟下图那样达到颜色交替?
代码为
function y20
figure;
p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);
theta=pi/2-P;phi=T;
R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);
surf(X,Y,Z,'facecolor',[0 .7 1],'edgecolor','none');
light
lighting phong
material shiny
axis equal;
view(60,15)
xlabel('X');ylabel('Y');zlabel('Z');title('Z')
function y=Ypz(theta,phi)
y=3/8*sqrt(70/pi)*abs(sin(theta).^3.*cos(theta).*sin(3*phi)); 展开
matlab中三维图形的颜色的设置是输入相关的字母代码完成的。只需在绘图的函数后加上相应的字母代码即可,具体字母代表的颜色如下:
MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。
扩展资料:
matlab常用的绘图函数:
1、graf2d :XY平面绘图(火柴棒)
2、graf2d2 :XYZ立体绘图(切片)
3、hndlgraf :平面显示线型处理窗口及命令演示
4、hndlaxis :平面显示处理窗口及命令演示
5、graf3d :立体显示处理窗口及命令演示
参考资料来源:百度百科-matlab
surf(X, Y, Z, C)
可以用 C 指定颜色。
比如像你的情况,如果想让上半部分是蓝的下半部分是红的,可以这样:
% 之前算 X, Y, Z 的不变
C = zeros(size(Z));
C(Z >= 0) = 1;
C(Z < 0) = -1;
surf(X,Y,Z,C, 'edgecolor','none');
% 用 RGB 指定颜色红是(1 0 0),蓝是(0 0 1)
colormap([1 0 0; 0 0 1]);
% 后面代码也不变 ...
我不太懂你的 Ypz 是怎么算的,不过你的情况可能是那个 C 不太好算。如果你知道相映颜色在球面坐标下怎么算的,也可以算好了之后再用 shp2cart() 之类的函数转过来。
不然也只能手动找到符合范围的点(x,y,z坐标范围),然后改变颜色。
据我所知没有自动这样符合你交替颜色要求的途径。