Как сделать так, чтобы у трехмерного объекта были разные цвета передней и задней граней? - PullRequest
0 голосов
/ 05 марта 2019

Можно ли заставить 3D-объект иметь разные цвета с каждой стороны (лицевая и задняя стороны одной стороны объекта одного цвета, например красный , а другой стороны другой цвет, например синий ) с помощью серфинга?

%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

Как я могу сделать другую сторону объекта для серфинга другого цвета, такого как синий? Это возможно?

Я использую Octave 5.1, который похож на Matlab

1 Ответ

0 голосов
/ 05 марта 2019

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
...