2013-07-29 39 views
2

的層根據MATLAB documentationMATLAB:改變貼片和線

如果線是共面的貼片或表面與zbuffer或OpenGL渲染器中使用的,線條出現在頂部。

一個linepatch對象的相對佈置不能由uistack功能(例如,uistack(patchHandle,'top')uistack(lineHandle,'bottom')不改變一個對象相對於另一所述層)被修改。如果不選擇替代渲染器,line可以被強制駐留在比patch更低的層中嗎?

回答

1

圖形對象是基於它們的順序在get(gca,'children')(第一元素=頂部,最後一個元素=底部)層疊,使重新排列該陣列允許你改變線,貼片的層等

示例:

patch([0.25 0.25 0.75 0.75],[0.25 0.75 0.75 0.25],'y') 
hold on; 
plot([-1 1],[-1 1],'b-',[1 -1],[-1 1],'r-','linewidth',10) 

目前從底部到頂部:補丁,藍線,紅線

Original order

g=get(gca,'Children') 
g=g([3 1 2]) 
set(gca,'children',g) 

現在自下而上:藍線,紅線,補丁

Patch on top

g=get(gca,'Children') 
g=g([1 3 2]) 
set(gca,'children',g) 

現在下到上:紅線,藍線,貼片

Blue over red