Azzera filtri
Azzera filtri

how can i map a 2d texture image in 3d surface ?

18 visualizzazioni (ultimi 30 giorni)
youb mr
youb mr il 21 Ott 2020
Commentato: youb mr il 22 Ott 2020
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 ?

Risposte (1)

drummer
drummer il 21 Ott 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.

Categorie

Scopri di più su Lighting, Transparency, and Shading in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by