# crop the polygon from the 3D surface

조회 수: 11(최근 30일)
Hi all,
I have such an attached 3D surface and a polygon on it. (Code is provided below)
I aim to crop the portion which is only inside the polygon and delete everything outside the polygon.
I found out the function of "inpolygon", but it did not work well enough since it is for 2D.
Then I encountered with "inpolyhedron" which is written for 3D, but was not that successfull on using it.
Is there any other way that you would suggest?
Thank you
Regards
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Hi Kelly,
Yes, there are 5 points on the surface and then I joined those points with lines.
So, both of the polygon and the surface are on the same plane.
I've provided the script in the main question part.
Thanks you
Regards

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

### 채택된 답변

darova 2020년 6월 19일
[X1,Y1,Z1] = sph2cart(llambda1,pphi1,6.9);
surf(X1,Y1,Z1)
in = inpolygon(X1,Y1,xl1,yl1);
view(3);
hold on
plot3(X1(in),Y1(in),Z1(in),'.r')
plot3(xl1, yl1, zl1,'MarkerSize',14, 'Color','red')
axis vis3d
##### 댓글 수: 4표시숨기기 이전 댓글 수: 3
Hi Kelly,
Thanks for your explanations, I understand.
Do you know how can I connect those points (vertices of a polygon) with an arc instead of a line.
I mean , now I understand better what you meant by asking if the surface and the polygon are on the same plane or not.
Atually I want to crop the portion which looks like a polygon from the surface, so I need to have the curvature.
In this case, I assume there is not a curvature, do you agree with me?
Thanks
Regards

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

### 추가 답변(1개)

darova 2020년 6월 20일
Here is another idea using triangulation (initmesh)
• create polygon
• use initmesh to triangulate it
• calculate Z coordinate
• rotate the object
##### 댓글 수: 5표시숨기기 이전 댓글 수: 4
darova 2020년 6월 22일

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

### Community Treasure Hunt

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

Start Hunting!

Translated by