Matlab에서 돌 (집계) 점 구름의 표면 삼각형을 만들 필요가 있습니다. 이것을 위해 나는 직교 좌표계에서 x,y,z
을가집니다.Matlab의 3D 오브젝트 삼각 측량
간단히 말해 구형 개체로 시작했습니다.
DT = delaunayTriangulation(x,y,z);
figure
trisurf(DT.ConnectivityList,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3), ...
'FaceColor','cyan','FaceAlpha', 0.8);
코드를 실행하고 결과는 다음과 같습니다
Triangulation of Spherical Object
는 너무 구 내부의 삼각형을 만든다. 반대쪽 또는 다른 곳에있는 다른 하나에 한 지점 연결.
또한 delaunayTriangulation()
은 이상적인 표면을위한 삼각 함수이며 민감한 표면에서는 작동하지 않습니다. 돌의 표면에 대해 생각해보십시오, 거기에 많은 불규칙성이 있습니다.
그럼 나는 DelaunayTri()
함수를 사용해 보았습니다. 그것은 구체 객체를 위해 일했고, 오직 삼각형으로 된 표면이었습니다. 그러나 더 복잡한 (돌) 모양을 시도했을 때,이 기능은 단지 모양을 이상화 시켰으며 돌의 모든 돌출 (불규칙)을 고려하지 않았습니다.
tri = DelaunayTri(x,y,z);
[FBtri,FBpoints] = freeBoundary(tri);
figure
trisurf(FBtri,FBpoints(:,1),FBpoints(:,2),FBpoints(:,3), ...
'FaceColor','cyan','FaceAlpha', 0.8);
위 코드에서 제거 freeBoundary()
함수는 결과가 동일한 경우 (이상화)과 삼각 허용되지 않는 개체 내부에 만들었다.
마지막으로 delaunay()
함수를 사용했습니다. 구가 올바르게 삼각형 화되지 않은 경우도 있습니다.
tri = delaunay(x,y,z);
figure
trisurf(tri,x,y,z,'FaceColor','cyan','FaceAlpha', 0.8);
질문 : 어떤 기능과 방법 (하시기 바랍니다 자세한가) 내가 어떤 모양의 돌 표면의 상세한 3D 삼각 측량을 할 수와? 위의 실수는 코드 위의 무엇입니까?