MATLAB Answers

Fill the interior of a cylinder surface - SURF - generated by parametric equations

11 views (last 30 days)
I've generated a cylinder using the parametric equations:
u = linspace(0,2*pi,50);
v = linspace(0,2*pi,50);
[u,v] = meshgrid(u,v);
x = cos(u);
y = sin(u);
z = v;
where u and v are 0-pi.
I've got a plot surf(x,y,z) of this cylinder and I want to fill all the interior points. Does anyone know how I can do this?
How can I do this?


Show 1 older comment
Brendan Hamm
Brendan Hamm on 5 Mar 2015
By fill the interior points, do you mean you want each (x,y,z) pair inside to contain a marker of some sort or do you want there to be surfaces at each of the heights in z?
William on 6 Mar 2015
I want it to be "physically" solid, so the interior points also have markers. Ideally so it is represented in binary i.e. 1 - where it is, 0 - where it isn't

Sign in to comment.

Accepted Answer

Brendan Hamm
Brendan Hamm on 5 Mar 2015
Edited: Brendan Hamm on 5 Mar 2015
If you are trying to just put anything in that location you can do the following to place circles there. First create a meshgrid of the x-y space.
hold on
u2 = linspace(-1,1);
v2 = u2;
[x2, y2] = meshgrid(u2,v2);
% Find distances
dist = sqrt(x2.^2 + y2.^2);
dist(dist>1) = 1;
dist(dist<1) = 0;
dist = logical(dist); % Logical matrix of exterior points
% Set exterior points to NaN
x2(dist) = NaN;
y2(dist) = NaN;
z2 = 2*pi*ones(size(x2)); % Just the highest point.
scatter3(x2(:),y2(:),z2(:)); % Scatter expects vectors, so stack everything
If you wish, you can fill the markers, change the colors, etc. If you need all the points filled you just need to do this for each value of z(:,1);


William on 6 Mar 2015
this would work for a straight cylinder, I'm just trying to think how it could relate to more complex tubes e.g. a spiral
I need to include the specific parametric equations in the filling, rather than just define a new shape of the same dimensions.
(eventually the radius will vary also, so stacking circles may get a bit complicated, but possible i suppose)
Brendan Hamm
Brendan Hamm on 8 Mar 2015
The process would be similar as you can still solve for the boundary of your shape at each value of z in your grid.

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Translated by