matlab - 如何在 MATLAB 中为曲面的不同侧面选择不同的颜色

标签 matlab plot colors surf

我正在 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

结果:
enter image description here

关于matlab - 如何在 MATLAB 中为曲面的不同侧面选择不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911173/

相关文章:

regex - 如何在 MATLAB 中将字符串解析为字母、数字等?

java - 在特定条件下循环调用另一个 Java GUI 程序

python - 我有一张星系图像,我只想绘制第 500 行

德尔福编辑器。光标样式

php - 计算颜色深浅

matlab - MATLAB ks密度函数是否执行边界校正?

r - 如何在ggplot2中将geom_vline()和geom_hline()图例与其他图例分开

用渐变替换饼图颜色

matlab - 使用 FFT 和 IFFT 对彩色图像进行低通滤波

matlab - 我如何编程 MATLAB 来计算立方正切函数的参数?