MATLAB Answers

How to apply a texture to a specific portion of a surface?

2 views (last 30 days)
Akku Appakonam
Akku Appakonam on 8 Apr 2020
Answered: darova on 8 Apr 2020
I was wondering if there was any way to texturemap multiple images onto specific portions of a surface. So far I've used the following code to transform my x, y, and z data into a surface plot. Say I wanted to apply a texture to only the triangular face that forms when connecting the 3 vertices highlited in the figure in red (it doesn't necessarily have to be a triangle). I tried overlaying a new surface, replacing my x, y, z data with the 3 vertices, but that just plots a triangluar face without conforming to the dips and bends in the previous surface. Any idea of how I might go about this? Greatly appreciate all the help!
xmin = min(x);
xmax = max(x);
ymin = min(y);
ymax = max(y);
N = 500; % Number of y values in uniform grid
M = 500; % Number of x values in uniform grid
xu = linspace(xmin, xmax, M); % Uniform x-coordinates
yu = linspace(ymin, ymax, N); % Uniform y-coordinates
[X, Y] = meshgrid(xu, yu); % Create meshes for xu and yu
F = TriScatteredInterp(x(:), y(:), z(:)); % Create interpolant
Z = F(X, Y); % Evaluate interpolant (N-by-M matrix)
s = surf(X, Y, Z);


KSSV on 8 Apr 2020
Apply texture? What you mean by applying texture? What you expect?
Akku Appakonam
Akku Appakonam on 8 Apr 2020
Appreciate the reply. I mean applying an image to the surface like this:
except I would like it to be on just a portion of the figure.

Sign in to comment.

Accepted Answer

darova on 8 Apr 2020
  • Use inpolygon to copy region you want
  • Create new surface
  • Apply texture to object


Sign in to comment.

More Answers (0)

Sign in to answer this question.

Translated by