2012-05-04 23 views
0

与えられたジオメトリに合った正三角形のグリッドを作成する必要があります。ジオメトリ上に正三角形のグリッドを作成する

私はジオメトリを含む画像を持っていますが、穴や細いパスが含まれている可能性があります。そして私は、この画像に類似するグリッドを作成する必要があります

http://neutrinodata.s3.amazonaws.com/theage-education/cmsimages/web/b3c5925e-34de-11e0-99f6-005056b06a0e-4535326.jpg

円は直径が可変であり、全体のジオメトリをカバーする必要があります。ポイントはジオメトリ上にある必要はありません。

+3

。そうであれば、そのようにラベル付けされるべきです。 – CAbbott

+0

実際にはそうではありません、私は楽しんでこれをやっています。画像は、最高の芝刈りルートを見つけることについて話しているウェブサイトから取られ、私はプログラムでそれをやりたかったのです。 –

答えて

3

あなたは、これは、あなたは、例えば、2次元マトリクス状に各円の状態を記憶することができ、簡単な使用する

enter image description here

斜め矩形グリッドであるとして三角格子と考えることができ処理のためにネストされたループ。その場合は、これらの論理座標を図面のジオメトリ・プレーン座標に変換する必要があります。

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); 
     ... 
    } 
} 
0

これは2Dメッシュツールを作成することを前提としています。もしそれが宿題であれば、自分でそれをやることをお勧めします。それがメッシング問題ではない場合は、私が言わなければならないことは、あなたに関係なく助けてください...

これを行うには、グリッドノードセンターを使用して平衡を生成します。最初に中心点を持っていない場合は、最初にオブジェクトの向きを選択し、次にこれらの(矩形ベースの)グリッドノードを作成する必要があります(これらの点が実際にあなたのオブジェクトの境界内にある)。これらの点を使って正三角形を構築することができます。注意。半分のまともな精度を得るには、エッジ検出に対処する必要があります。

平方和だけでなく、より正確なメッシュを得るには、三角形分割を使用して異方性メッシュ適合(AMA)を調べなければなりません。これは上記の基本的なアプローチよりもはるかに難しいでしょうが、楽しいです!

このlinkを、AMAを使用して2D tetメッシュジェネレータにチェックアウトしてください。このコードは基づいている用紙がある:これは宿題のように思える

  1. V. Dolejsi: Anisotropic mesh adaptation for finite volume and finite element methods on triangular meshes Computing and Visualisation in Science, 1:165-178, 1998.
関連する問題