サーフェスを形成する 3D の三角形のリストがあります (つまり、三角形分割)。構造は変形した三角格子です。変形されていない格子セルの残りの領域に対する格子のボロノイ分割の変形された六角形の面積の変化を知りたい (すなわち、正六角形に関して)。実際、これらの三角形に関連付けられている六角形の単位セルの面積の変化の 2 乗の合計が本当に必要です。
背景/数学の詳細: 湾曲した弾性シートを三角格子で近似しています。シートのポアソン比 (弾性定数) を調整する 1 つの方法は、エネルギーに「体積」ひずみエネルギー項を追加することです。U_volumetric = 1/2 T (e_v)^2、e_v=deltaV/V は、既知の定数である参照領域に関するボロノイ セル。
欲しい:
Sum[ (DeltaA/ A).^2 ]
すべての六角形セルにわたって。
私のデータは変数に保存されます:
xyz = [ x1,y1,z1; x2,y2,z2; etc] %
3D の頂点/パーティクル
TRI = [ vertex0, vertex1, vertex2; etc] %
は、最初の三角形の位置
にある粒子vertex0
の行です。xyz
vertex 0
NeighborList = [ p1n1, p1n2, p1n3, p1n4, p1n5,p1n6 ; p2n1...]
% ここで、p1n1 は xyz の行インデックスとしてのパーティクル 1 の最初の最近傍です。たとえば、パーティクル 1 の最初の近傍の位置をxyz(NL(1,1),:)
返します。xyz
AreaTRI = [ areaTRI1; areaTRI2; etc]
私はこれをMATLABで書いています。
現時点では、各頂点に起因する面積の量を三角形の面積の 1/3 として概算し、次に 6 つの最も近い三角形を合計しています。しかし、ボロノイ セルの面積は、Sum_(i=0,1,...5) 1/3* areaTRI_i と正確に等しくならないため、これは悪い近似です。上記のリンクの画像を参照してください。これにより、これがより明確になると思います。