如何在 MATLAB 中为曲面的不同面选择不同的颜色
How to choose different colors for different sides of a surface in MATLAB
我正在 MATLAB 中绘制可定向的开放曲面,其中曲面的每一侧都被明确定义。我想让每一面都有不同的颜色,这样很容易判断你是在看 "front" 还是在看后面。我看不到在 MATLAB 中得到这个。我试过背面照明,但这并没有产生什么区别。我不确定是不是因为我的数据是一个开放的表面而不是一个封闭的表面。也可以是其他变量的选择。这是一个代码片段。
h = surf(xc,yc,-zc);
set(h,'faceColor',[0.75 0.75 0.75],'BackFaceLighting','lit');
我已经尝试了不同的选项。最终我想要的是让正面(可见的那个)是深灰色阴影,而背面是不同的浅灰色阴影。在某些情况下,表面会折叠或扭曲,并且可以看到部分背面。此外,如果 surf() 以外的其他绘图函数执行此操作,请告诉我。
SciLab 实际上默认使用蓝色和黄色(或其他一些颜色组合)来执行此操作。所以我不必担心指定选项。
您可以绘制两个曲面,一个略低于另一个。
示例:
[X, Y, Z] = peaks(25);
figure;
surf(X, Y, Z, 'faceColor', [0.15 0.15 1]);
hold on
Z2 = Z - 0.01; %Set Z2 values slightly lower then Z
surf(X, Y, Z2, 'faceColor', [0.75 0.75 0.75], 'BackFaceLighting', 'lit');
hold off
结果:
我正在 MATLAB 中绘制可定向的开放曲面,其中曲面的每一侧都被明确定义。我想让每一面都有不同的颜色,这样很容易判断你是在看 "front" 还是在看后面。我看不到在 MATLAB 中得到这个。我试过背面照明,但这并没有产生什么区别。我不确定是不是因为我的数据是一个开放的表面而不是一个封闭的表面。也可以是其他变量的选择。这是一个代码片段。
h = surf(xc,yc,-zc);
set(h,'faceColor',[0.75 0.75 0.75],'BackFaceLighting','lit');
我已经尝试了不同的选项。最终我想要的是让正面(可见的那个)是深灰色阴影,而背面是不同的浅灰色阴影。在某些情况下,表面会折叠或扭曲,并且可以看到部分背面。此外,如果 surf() 以外的其他绘图函数执行此操作,请告诉我。
SciLab 实际上默认使用蓝色和黄色(或其他一些颜色组合)来执行此操作。所以我不必担心指定选项。
您可以绘制两个曲面,一个略低于另一个。
示例:
[X, Y, Z] = peaks(25);
figure;
surf(X, Y, Z, 'faceColor', [0.15 0.15 1]);
hold on
Z2 = Z - 0.01; %Set Z2 values slightly lower then Z
surf(X, Y, Z2, 'faceColor', [0.75 0.75 0.75], 'BackFaceLighting', 'lit');
hold off
结果: