我正在 MATLAB 中绘制可定向的开放曲面,其中曲面的每一侧都有明确定义。我想让每一面都有不同的颜色,这样就很容易分辨你是在看“正面”还是背面。我看不到在 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 - 如何在 MATLAB 中为曲面的不同侧面选择不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911173/