在matlab中将三维数据点转换为标准化(2D)图形点
考虑在3D绘图上定位一些文本:在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)转换为二维标准
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');