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

在matlab中将三维数据点转换为标准化(2D)图形点,matlab,3d,Matlab,3d,考虑在3D绘图上定位一些文本: membrane xlabel('x'); ylabel('y'); zlabel('z'); view(3); grid on text(0,-1,.5,'Test','FontSize',20,'Units','data'); 沿y方向稍微移动文本 text(0,-0.7,.5,'Test','FontSize',20,'Units','data'); 给予 如图所示,文本被曲面截断(隐藏)。 是否可以将最后一个位置(0、-0.7、.5)转换为二维标准

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

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

沿y方向稍微移动文本

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

如图所示,文本被曲面截断(隐藏)。 是否可以将最后一个位置(0、-0.7、.5)转换为二维标准化位置? (因为标准化坐标中的打印文字不受曲面的影响(隐藏)。假设归一化位置为(x,y), 那我可以用

text(x,y,'Test','FontSize',20,'Units','normalized');
在三维图形上打印文本


因此,我的问题是:如何将三维数据点转换为二维标准化图形点?

似乎需要以下工作:

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');