MATLAB > freeBoundary() > 四面体結合物への適用 > 隠面以外の三角形の情報を取得する


動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)

前置き

MATLAB > freeBoundary()を試してみた > tetmeshを処理してみた > 疑問点
にてtetmeshに対するfreeBoundary()の結果について不明であった。

試したこと

tetmeshのデータからサブセットを作り、それを見てみる。

>> load tetmesh
>> tetsub=tet(1:5,:)
>> tetsub

tetsub =

        1092        1093         858         891
        1092         856        1094        1095
        1092        1095         896         856
        1092        1096        1097         891
        1092        1094        1098        1095
>> tetramesh(tetsub,X)
>> % rotate arbitrary by manual

tetmeshは四面体の結合物であると認識した。
上記の座標例の場合、4つの三角形が隠面になっている (黄色、緑、と薄い青の結合部分)。

freeBoundary適用


>> [tri xf] = freeBoundary(trep)

tri =

     1     7     8
     2     8     7
     2     1     8
     2     7     1
     3     6     4
     2     6     3
     4     9     3
     2     3     9
     2     9     4
     5    10     8
     2     8    10
     2     5     8
     2    10     5
     6    11     4
     2     4    11
     2    11     6


xf =

   -7.3299  -28.4969    8.2244
   -4.5873  -30.5595    8.1954
   -0.9787  -33.7358    5.0000
   -0.6085  -30.3316    6.7757
   -1.9193  -29.6506   11.1787
   -3.3866  -29.3811    2.8471
   -8.5236  -32.6560    5.0000
   -5.5716  -33.2869   10.0000
   -1.9624  -33.6929   10.0000
   -5.2360  -29.7786   13.4800
   -3.6079  -27.8457    6.3998

  • tetsub: 5つの四面体
    • 5 x 4の三角形
    • 4つの三角形が隠面
    • -> 16が「自由境界の小平面」
  • tri: 16の三角形

freeBoundary()の振る舞いとしては「隠面以外の三角形の情報を取得する」なのだろう。