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

조회 수: 5 (최근 30일)
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?
  댓글 수: 4
Andrew Newell
Andrew Newell 2015년 3월 5일
Or do you mean that you want to cap the ends so it looks solid?
William
William 2015년 3월 6일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Brendan Hamm
Brendan Hamm 2015년 3월 5일
편집: Brendan Hamm 2015년 3월 5일
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.
surf(x,y,z)
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);
  댓글 수: 3
Brendan Hamm
Brendan Hamm 2015년 3월 8일
The process would be similar as you can still solve for the boundary of your shape at each value of z in your grid.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by