Colormap gradient on patch object together with a surface object

3 ビュー (過去 30 日間)
Johannes
Johannes 2012 年 5 月 11 日
I use surf and patch in the same plot but the colors on the patch's face changes when I add the surface. How do I get the entire colormap on the patch face?
Example:
[X,Y]=meshgrid(1:100,1:100);
Z=(X.*Y).^2;
surf(X,Y,Z)
patch('faces',[1 2 3 4],'vertices',[0 0 0; 0 100 0; 0 100 10^8; 0 0 10^8],...
'FaceColor','interp','FaceVertexCData',[0 0 10^8 10^8]')

採用された回答

Patrick Kalita
Patrick Kalita 2012 年 5 月 11 日
When the surface is added, MATLAB automatically changes the figure's Renderer to OpenGL -- which has a bug in how it does color interpolation. Try manually setting the Renderer to zbuffer:
set(gcf, 'Renderer', 'zbuffer')
  1 件のコメント
Johannes
Johannes 2012 年 5 月 11 日
That's a very satisfying answer :) thanks!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePolygons についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by