Main Content

surfaceMesh

곡면 메시 생성

R2022b 이후

    설명

    surfaceMesh 객체는 곡면 메시를 생성하고 저장합니다. 곡면 메시는 기하학적 곡면을 표현하며 꼭짓점, 면, 가장자리로 구성됩니다. surfaceMesh 객체와 객체 함수를 사용하여 다음을 수행할 수 있습니다.

    • 메시 꼭짓점과 메시 면 추가 및 제거

    • 회전, 평행 이동, 변환, 스케일링과 같은 기하학적 연산 수행

    • 메시 법선 계산

    • 메시 자르기, 단순화 및 세분하기

    • 자체 교차 여부, 밀폐 여부 또는 방향 지정 가능 여부와 같은 메시 속성 확인

    • 퇴화하고 참조되지 않은 꼭짓점 및 면 제거

    생성

    설명

    예제

    mesh = surfaceMesh(vertices,faces)는 지정된 꼭짓점과 면으로 surfaceMesh 객체를 생성합니다.

    mesh = surfaceMesh(___,Name=Value)는 위에 열거된 구문의 인수 외에 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어 VertexNormals=[8 -4 4; 4 4 8; -6 6 3; -3 -6 6; 3 -6 -6; 6 6 -3]은 메시 꼭짓점에 대한 법선 벡터를 지정합니다.

    속성

    모두 확장

    메시 꼭짓점으로, M×3 행렬로 지정됩니다. 이 행렬의 각 행은 [x y z] 형식이며 꼭짓점의 좌표를 지정합니다. 각 꼭짓점은 행렬에서의 행 번호와 동일한 꼭짓점 ID를 갖습니다. M은 메시의 총 꼭짓점 개수입니다.

    vertices 인수는 객체를 생성할 때 이 속성을 설정합니다.

    데이터형: single | double

    메시 삼각형 면으로, N×3 행렬로 지정됩니다. 행렬의 각 행은 [V1 V2 V3] 형식이며 삼각형 면을 정의하는 Vertices에서 그에 대응하는 꼭짓점의 행 인덱스를 지정합니다. N은 메시의 면 개수입니다.

    faces 인수는 객체를 생성할 때 이 속성을 설정합니다.

    데이터형: single | double

    메시 꼭짓점에 대한 법선 벡터로, M×3 행렬로 지정됩니다. 행렬의 각 행은 [x y z] 형식이며 꼭짓점에 대한 법선 벡터를 지정합니다. M은 메시의 총 꼭짓점 개수입니다.

    꼭짓점 법선은 꼭짓점에 연결된 모든 면 법선의 가중 평균입니다.

    이 속성을 설정하려면, 객체를 생성할 때 지정하십시오.

    예: mesh(vertices,faces,VertexNormals=[8 -4 4; 4 4 8; -6 6 3; -3 -6 6; 3 -6 -6; 6 6 -3])

    데이터형: single | double

    메시 꼭짓점에 대한 색 값으로, M×3 행렬로 지정됩니다. 행렬의 각 행은 [R G B] 형식이며 꼭짓점에 대한 색 값을 지정합니다. 각 값은 범위 [0, 1] 내에 있어야 합니다. M은 메시의 총 꼭짓점 개수입니다.

    이 속성을 설정하려면, 객체를 생성할 때 지정하십시오.

    예: mesh(vertices,faces,VertexColors=[1 0 0; 0 0 1; 0 0 0; 1 1 1 1; 1 1 0; 0 1 1])

    데이터형: single | double

    메시 면에 대한 법선 벡터로, N×3 행렬로 지정됩니다. 행렬의 각 행은 [x y z] 형식이며 면에 대한 법선을 지정합니다. N은 메시의 총 면 개수입니다.

    이 속성을 설정하려면, 객체를 생성할 때 지정하십시오.

    예: mesh(vertices,faces,FaceNormals=[8 -4 4; 4 4 8; -6 6 3; -3 -6 6; 3 -6 -6; 6 6 -3])

    데이터형: single | double

    메시 면에 대한 색 값으로, N×3 행렬로 지정됩니다. 행렬의 각 행은 [R G B] 형식이며 면에 대한 색 값을 지정합니다. 각 값은 범위 [0, 1] 내에 있어야 합니다. N은 메시의 총 면 개수입니다.

    이 속성을 설정하려면, 객체를 생성할 때 지정하십시오.

    예: mesh(vertices,faces,FaceColors=[1 0 0; 0 0 1; 0 0 0; 1 1 1; 1 1 0; 0 1 1])

    데이터형: single | double

    메시 꼭짓점 개수로, 양의 정수로 저장됩니다.

    이 속성은 읽기 전용입니다.

    데이터형: unit32

    메시 면 개수로, 양의 정수로 저장됩니다.

    이 속성은 읽기 전용입니다.

    데이터형: unit32

    객체 함수

    addVerticesAdd vertices to surface mesh
    addFacesAdd faces to surface mesh
    removeVerticesRemove vertices from surface mesh
    removeFacesRemove faces from surface mesh
    translateTranslate surface mesh
    rotateRotate surface mesh
    transformApply rigid transformation to surface mesh
    vertexCenterFind vertex center of surface mesh
    scaleScale vertices of surface mesh
    computeNormalsCompute unit normals for mesh vertices and faces
    cropCrop surface mesh
    simplifySimplify surface mesh
    subdivideSubdivide surface mesh
    isEdgeManifoldCheck if surface mesh is edge-manifold
    isOrientableCheck if surface mesh is orientable
    isSelfIntersectingCheck if surface mesh is self-intersecting
    isVertexManifoldCheck if surface mesh is vertex-manifold
    isWatertightCheck if surface mesh is watertight
    removeDefectsRemove surface mesh defects

    예제

    모두 축소

    직육면체에 대한 메시 꼭짓점을 정의합니다.

    vertices = [1 -1  1; 1 1 1; -1 1 1; -1 -1 1; ...
                1 -1 -1; 1 1 -1; -1 1 -1; -1 -1 -1];

    꼭짓점을 사용하여 메시 면을 정의합니다.

    faces = [6 2 1; 1 5 6; 8 4 3; 3 7 8; 6 7 3; 3 2 6; ...
             5 1 4; 4 8 5; 4 1 2; 2 3 4; 7 6 5; 5 8 7];

    곡면 메시를 만듭니다.

    mesh = surfaceMesh(vertices,faces);

    곡면 메시를 표시합니다.

    surfaceMeshShow(mesh,Title="Cuboid Mesh")

    버전 내역

    R2022b에 개발됨