how can i map a 2d texture image in 3d surface ?
13 views (last 30 days)
Show older comments
hello every one
I have a texture image I want to map this texture to a 3d object ,where i want which each face of this 3d surface will be plated with this image this is my code
v = fv.vertices; % vertices [x y z] columns
f=fv.faces;
nx = 120; % the size of the grid
ny = 120; % the size of the grid
% create a grid in x and y
x = linspace(min(v(:,1)),max(v(:,1)),nx);
y = linspace(min(v(:,2)),max(v(:,2)),ny);
[x,y] = meshgrid(x,y);
Z = gridtrimesh(f,v,x,y);
surf(x,y,Z,'facecolor','texturemap', ...
'cdata',I,'edgecolor','none');
but I don't have the result which I wanted how I can solve the problem ?
0 Comments
Answers (1)
drummer
on 21 Oct 2020
Your code is not very clear, but I assume your 2D texture is f, right?
You want a 3D plot of each surface?
Would this work?
v = rand(10,10); % mimicking your faces. Notice it is two dimensional
figure
surfc(v); % Notice this way, the dimensions of your 3D plot will be the dimension of your faces.
% Therefore, no grid was necessary.
You can code a workaround for each face.
If that helps, please accept the answer.
Cheers.
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!