Main Content

surfaceMesh

表面メッシュの作成

R2022b 以降

    説明

    surfaceMesh オブジェクトは、表面メッシュを作成して格納します。表面メッシュは幾何学的な表面を表し、頂点、面、エッジで構成されます。surfaceMesh オブジェクトとオブジェクト関数を使用すると、次のことが可能です。

    • メッシュの頂点および面の追加と削除

    • 回転、平行移動、変換、スケールなどの幾何演算の実行

    • メッシュ法線の計算

    • メッシュのトリミング、簡略化、分割

    • 自己交差するか、水密、または有向かどうかなどのメッシュ プロパティのチェック

    • 縮退し参照されていない頂点および面の削除

    作成

    説明

    mesh = surfaceMesh(vertices,faces) は、指定された頂点および面を使って surfaceMesh オブジェクトを作成します。

    mesh = surfaceMesh(___,Name=Value) は、前述の構文の引数に加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、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
    computeNormalsメッシュの頂点および面の単位法線の計算
    cropCrop surface mesh
    simplifySimplify surface mesh
    subdivideSubdivide surface mesh
    isEdgeManifoldCheck if surface mesh is edge-manifold
    isOrientableCheck if surface mesh is orientable
    isSelfIntersecting表面メッシュが自己交差するかどうかのチェック
    isVertexManifoldCheck if surface mesh is vertex-manifold
    isWatertight表面メッシュが水密かどうかのチェック
    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 で導入