在matlab中将3D数据点转换为标准化(2D)图形点

时间:2013-10-08 10:29:15

标签: matlab 3d

考虑在3D图上定位一些文字:

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图表上绘制文字。

所以我的问题是:如何将3D数据点转换为2D标准化图形点?

1 个答案:

答案 0 :(得分: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');