필터 지우기
필터 지우기

How to create volume out of surfaces?

조회 수: 5 (최근 30일)
Teerapong Poltue
Teerapong Poltue 2021년 6월 7일
댓글: darova 2021년 6월 9일
I got these two surfaces from isosurface plot, thus I have all the coordinates of these surfaces. I would like to fill in between the two surface to create a 3d solid part. How can I do that?

답변 (1개)

darova
darova 2021년 6월 7일
Your object looks symmetrical. Try manually to create surface
p1 = isosurface(...);
p2 = isosurface(...);
v1 = p1.vertices;
v2 = p2.vertices;
ix1 = v1(:,3) > (max(v1(:,3))-0.05); % find z coord of boundary
ix2 = v2(:,3) > (max(v2(:,3))-0.05); % find z coord of boundary
[t1,r1] = cart2pol(v1(:,1),v1(:,2)); % extract data first contour
[t2,r2] = cart2pol(v2(:,1),v2(:,2)); % extract data second contour
ind1 = sort(t1); % order points counter clockwise
ind2 = sort(t2); % order points counter clockwise
% data can be of different size. Interpolate data to make the same size
r22 = interp1(t2,r2,t1); % make two contours same size as second one
x1 = v1(:,1);
y1 = v1(:,2);
z1 = v1(:,3);
[x2,y2] = pol2cart(t1,r22); % second contour
z2 = z1;
% create data for surface
X = [x1(:) x2(:)];
Y = [y1(:) y2(:)];
Z = [z1(:) z2(:)];
surf(X,Y,Z)
  댓글 수: 6
Teerapong Poltue
Teerapong Poltue 2021년 6월 9일
Well the space between two surfaces still being a void space, I would like to fill that with solid.
darova
darova 2021년 6월 9일
Maybe look into alphaShape

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

카테고리

Help CenterFile Exchange에서 Scalar Volume Data에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by