我想将2D图像纹理贴图到3D表面。我想在GUI中执行此操作,以便用户可以使用相机工具栏旋转/移动/缩放曲面,然后将图像映射到曲面的可见部分。
我知道我可以使用campos
命令获取相机位置,但如何获取相机方位?
有什么想法吗?或者也许你可以建议一个更好的方法?
谢谢!
答案 0 :(得分:3)
要回答标题中的问题(根据我的理解),您可以使用texturemap
属性的准确名称FaceColor
值(原始权利?)为3D数据指定纹理贴图以及适当的CData
(这里是2D图像)。
简单示例:
clear
clc
A = imread('peppers.png');
%// Generate dummy surface plot
[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2 -Y.^2);
surf(X,Y,Z,'CData',A,'FaceColor','texturemap')
看起来像这样:
默认情况下,在图形窗口中,您可以根据需要缩放/移动。对于问题的第2部分,我认为您应该仔细阅读campos
及相关功能的文档以获取/设置摄像机位置。由于构建GUI来执行该任务需要付出很多努力,我认为最好的办法是自己尝试一些事情,如果你被卡在某个地方,可以在这里提问。
希望有所帮助!