如何使3D对象的正面和背面颜色不同

时间:2019-03-05 10:31:43

标签: matlab octave

是否可以使3D对象的每一侧具有不同的颜色(对象的正面和背面的一侧为 red 颜色,另一侧为 blue em>)使用冲浪吗?

%example
[x y] = meshgrid(-1:0.1:1); % Generate x and y data
z = zeros(size(x, 1)); % Generate z data
surf(x, y, z, 'FaceColor', 'red') % Plot the surface

Red side

如何使冲浪对象的另一面具有另一种颜色,例如蓝色?这可能吗?

我正在使用与Matlab类似的Octave 5.1

1 个答案:

答案 0 :(得分:0)

几乎每台计算机都使用OpenGL在屏幕上绘制内容,MATLAB(和Octave AFAIK)也是如此。由于MATLAB使用OpenGL原语在屏幕上绘制事物,因此您无法执行OpenGL原语无法执行的任何操作,例如在每侧绘制不同颜色的图元。有了这样的理解,得出的结论是,要做您想做的事情,您需要绘制两次曲面。

surf(x, y, z, 'FaceColor', 'red') % Plot the surface
hold on
surf(x, y, z-z*0.001, 'FaceColor', 'blue') % Plot the surface