2

現在、MATLAB で画像に注釈を付ける作業を行っています。軸に沿って1つの特定の点をマークするために、軸の範囲外に描画できるように、クリッピングをオフにして点をプロットしています。しかし、パッチ オブジェクトを含めて透明にすると、つまりレンダラーを暗黙的に「ペインター」から「OpenGL」に変更すると、クリッピング オフで描画されたオブジェクトが図から消えます。

以下のコード例と画像を参照してください。

回避策またはより良い実装に関するアイデアはありますか? 私は両方の長所が欲しい!

f1 = figure(1);clf
set(f1,'RendererMode','auto')   %# Make sure renderer can change

%Plot objects
pLine = plot(0:0.1:1,0:0.1:1);hold on;
pointInside = plot(0.5,0.5,'v');
pointOutside=plot(0.5,1.01,'v','clipping','off'); %# Visible outside axes by clipping off.
patchHandle =patch([0.2;0.8;0.8;0.2],[0.2;0.2;0.8;0.8],ones(4,1));
patchHandle2 = patch([0.1;0.3;0.3;0.1],[0.7;0.7;0.9;0.9],zeros(4,1)); 
uistack(patchHandle2,'bottom')

axis([0 1 0 1])
colormap(summer)

%# Point outside now visible.

disp(get(f1,'renderer'))

%Make patch semi transparent
uistack(patchHandle,'top')          %# Patch goes over line and point
set(patchHandle,'facealpha',0.7);   %# Point and line visible again due to alpha

disp(get(f1,'renderer'))

%# Renderer has now changed and point outside no longer visible

ここに画像の説明を入力

ここに画像の説明を入力

4

0 に答える 0