【问题标题】:Convert 3D data point to normalized (2D) figure point in matlab在matlab中将3D数据点转换为标准化(2D)图形点
【发布时间】:2013-10-08 19:00:32
【问题描述】:

考虑在 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) 转换为 2D 归一化位置? (因为在标准化坐标中绘制文本不受表面的影响(隐藏))。假设归一化位置为 (x,y), 那么我可以使用

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

在 3D 图形上绘制文本。

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

【问题讨论】:

    标签: matlab 3d


    【解决方案1】:

    看起来像以下作品:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 2020-02-16
      相关资源
      最近更新 更多