特定のジオメトリに適合する正三角形のグリッドを作成する必要があります。
ジオメトリを含む画像があります。穴や細いパスが含まれている可能性があります。そして私はこの画像のようなグリッドを作成する必要があります:
円の直径は可変であり、ジオメトリ全体をカバーする必要があります。ポイントはジオメトリ上にある必要はありません。
特定のジオメトリに適合する正三角形のグリッドを作成する必要があります。
ジオメトリを含む画像があります。穴や細いパスが含まれている可能性があります。そして私はこの画像のようなグリッドを作成する必要があります:
円の直径は可変であり、ジオメトリ全体をカバーする必要があります。ポイントはジオメトリ上にある必要はありません。
三角形のグリッドは、斜めの長方形のグリッドと考えることができます
これにより、たとえば、各円の状態を 2 次元マトリックスに格納したり、単純なネストされたループを処理に使用したりできます。当然のことながら、これらの論理座標を描画用のジオメトリ平面座標に変換する必要があります。
const double Sin30 = 0.5;
static readonly double Cos30 = Math.Cos(30*Math.PI/180);
for (int xLogical = 0; xLogical < NX; xLogical++) {
for (int yLogical = 0; yLogical < NY; yLogical++) {
double xGeo = GridDistance * xLogical * Cos30;
double yGeo = GridDistance * (yLogical + xLogical * Sin30);
...
}
}
これは、2D メッシング ツールを作成するためのものであると想定しています。宿題である場合は、自分でやることをお勧めします。それがメッシュの問題でない場合、私が言わなければならないことは、関係なくあなたを助けるはずです...
これを行うには、グリッド ノードの中心を使用して正三角形を生成します。最初に中心点がない場合は、まずオブジェクトの向きを選択してから、これらの (長方形ベースの) グリッド ノードを作成する必要があります (これらの点が実際にオブジェクトの境界内にあります)。次に、これらの点を使用して正三角形を作成できます。ノート。まともな精度を得るには、再びエッジ検出に対処する必要があります。
正三角形だけでなく、より正確なメッシュを取得するには、三角測量を使用した異方性メッシュ適応 (AMA) を調べる必要があります。これは、上で概説した基本的なアプローチよりもはるかに難しくなりますが、楽しいものです。
AMA を使用した 2D tet-mesh ジェネレーターへのこのリンクを確認してください。このコードが基づいている論文は次のとおりです。