Determining if points lie within a sphere
조회 수: 15 (최근 30일)
이전 댓글 표시
I have a set of points P(x,y,z) and a sphere defined by its centre (x0,y0,z0) and radius r. I want to find the points that lie within or on the edge of sphere. I can run a loop for all points and check the condition:
(x-x0)^2+(y-y0)^2+(z-z0)^2<=r^2
But, Is there a direct function or any cheap method that would directly give me the indices of all points that lie within the sphere? Something I can easily use when there are large number of points and different sphere radius to test?
Thank you.
댓글 수: 0
채택된 답변
Matt J
2021년 9월 29일
편집: Matt J
2021년 9월 29일
Do you really need the indices? You can readily obtain a logical mask of the points in the sphere with,
mask = (x-x0).^2+(y-y0).^2+(z-z0).^2<=r^2;
If you really do need the indices, then,
find(mask)
댓글 수: 3
Matt J
2021년 9월 29일
OK, but I showed you how to get the indices, so you have your answer. Please Accept-click the answer then, unless there is some unresolved issue.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!