2

MATLABのドキュメントによると:

線がパッチまたはサーフェスと同一平面上にあり、zbuffer または OpenGL レンダラーが使用されている場合、線は上に表示されます。

lineおよびpatchオブジェクトの相対的な配置は、uistack関数によって変更できません (たとえば、uistack(patchHandle,'top')あるuistack(lineHandle,'bottom')オブジェクトのレイヤーを別のオブジェクトに対して相対的に変更しないでください)。代替レンダラーを選択せず​​に、 をlineより下のレイヤーに配置することを強制できますか?patch

4

1 に答える 1

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)

現在、下から上へ: パッチ、青線、赤線

元の注文

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

下から上へ: 青線、赤線、パッチ

上にパッチ

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

下から上へ: 赤線、青線、パッチ

赤の上に青

于 2015-09-15T19:14:56.087 に答える