2013-10-08 47 views
4

考慮定位一些文本上的3D圖:轉換三維數據點以歸一化(2D)圖中的點在MATLAB

membrane 
xlabel('x'); ylabel('y'); zlabel('z'); 
view(3); 
grid on 
text(0,-1,.5,'Test','FontSize',20,'Units','data'); 

enter image description here

在y方向上稍微移動文本

text(0,-0.7,.5,'Test','FontSize',20,'Units','data'); 

給出

enter image description here

如所見,文本被表面切斷(隱藏)。 是否可以將最後一個位置(0,-0.7,.5)轉換爲2D標準化位置? (因爲在標準化座標中繪製文本不受表面影響(隱藏))。假設歸一化的位置(X,Y),然後 我可以使用

text(x,y,'Test','FontSize',20,'Units','normalized'); 

繪製的三維圖形的文字。

所以我的問題是:如何將3D數據點轉換爲2D規範化數字點?

回答

0

好像以下工作:

h=text(0,-.7,.5,'Test','FontSize',20,'Units','data','visible','off'); 
set(h,'Units','normalized'); 
P=get(h,'Position'); 
x=P(1); y=P(2); 
delete(h); 
text(x,y,'Test','Color','r','FontSize',20,'Units','normalized');