7

メッシュがあるとします(CorelDraw の図を参照してください。 「メッシュ フィル」インストルメントで同じテクニックを使用しています)

代替テキスト
(出典: sonic.net )

明らかに、この種のメッシュは点のセットで表され、それらの間の線は実際にはその点のセットを使用して決定されます(おそらく何らかの方法で補間されます)。このインストゥルメントには、メッシュ解像度を上げるためのボタンもあります。

私の質問は次のとおりです-そのようなものはどのように計算されますか? 実際にメッシュを表すポイントのセットがあるとします(簡単なケースとして、「境界」上のポイントは静的であり、移動できないと仮定します)。そして、メッシュの解像度を、たとえば 4 倍に増やしたいと考えています (つまり、メッシュ ポイントの数は実際には になります4 * initial_points_count)。

私が持っている唯一のデータがその初期点行列である場合、新しい点の位置を計算するにはどうすればよいですか?

最速の(概算でも)方法は私に適していますが、どこを検索すればよいか、そのような種類のアルゴリズムを開発する方法がわかりません。

ありがとうございました。

4

5 に答える 5

4

既存の回答に対するコメント:

Mau と martient の回答は、既知のフォームをポリゴン メッシュで近似するという問題の解決策を説明しているように思えます (既知のフォームはありません)。

Dave が言及しているアルゴリズムは、あらゆる形式を滑らかにしますが、必ずしも意図した方法であるとは限りません。

You's answer を見ると、新しいポイントがポイント間の線形補間から得られていることがわかります。それで十分であれば、すべてのソリューションは同等です (Dave を除く)。

メッシュ密度をこのように増やしても、結果のメッシュが「見栄えが良く」なるわけではなく、元の形状により似たものになります。それが十分でない場合は、最初に、メッシュで表現しようとしている実際のフォーム/シェイプが何であるかを決定する必要があります (例を拡張できる場合は、もう少し明白になる可能性があります。このツールは円メッシュのみを作成しますか?または、任意の形状を取り、「メッシュで埋める」ことができますか?)。

また、ポリゴン メッシュではなく、曲線のメッシュ (おそらくbezier )を使用していることに注意してください。これが、回答の一部が問題に直接適用されないもう 1 つの理由です。

編集: コーレルがこれを行う方法を詳しく調べ、ポイントだけでなく曲線を実際に知っていると仮定した後(!):

  • あなたは一連の曲線から始めますが、最初は水平曲線と垂直曲線があるようです
  • 解像度 (水平解像度など) を上げたい場合は、2 つの連続した垂直曲線を取得し、それらが通過する水平曲線のすべてのセグメントを中間点で分割して、新しい曲線を定義する一連の点を作成します。曲線がポイントを通過する角度を補間することもできます

代替テキスト http://img706.imageshack.us/img706/5693/path5818.png

上の (手動で描かれた) 図は、a) この方法で生成される新しい曲線 (赤) の追加を説明しようとしています。b) 線形に補間されたポリライン (青) を追加します。これは、ポリゴン メッシュ アプローチにより適しています (それが許容できるかどうかを判断できます)。

: メッシュを準備するアルゴリズムによっては、メッシュ ラインを曲線と見なす利点がある場合とない場合があります (赤と青のソリューションの違いは、特定のアルゴリズムでは無視できるものであり、他のアルゴリズムでは重要な場合があります)。アルゴリズムが単純にポイントを期待する場合は、ベジエ曲線をポイントで近似する方法も検討する必要があります (ピクセル精度は必要ありませんが、これを読むと役立つ場合があります)。

最高の精度/最良の結果を得るには、最初に曲線の密度を上げ、線で近似する必要があります。

于 2010-07-07T10:25:17.690 に答える
2

あなたが探しているのは、メッシュの滑らかなアルゴリズムです。残念ながら手元にリソースがないため、「メッシュ スムージング」については Google で検索することしかできません。それは巨大な分野です。

編集

これは、メッシュのスムージングを実現するためのいくつかの方法/アルゴリズムの簡潔なまとめです

于 2010-07-07T10:03:23.920 に答える
2

補間によってすべての線に中間点を追加することから始めます (図の曲線は何らかのベジエ曲線である可能性が最も高いため、そのように補間するか、マウが提案したように双線形補間を使用します)、新しい点を中間に配置します古いもので、解像度が 3 倍になりました。次に、これらの新しいポイント間を補間し (精度が重要な場合は両方向)、交点 (または中間) に新しいポイントを配置します。下の「イラスト」をご覧ください。

Initial state  =>  Interpolate  =>  Place points  =>  Interpolate => Final state
  x       x         x-------x        x   x   x         x   x   x      x   x   x
                    |       |                              |    
                    |       |        x       x         x---+---x      x   x   x
                    |       |                              |
  x       x         x-------x        x   x   x         x   x   x      x   x   x
于 2010-07-07T10:04:58.707 に答える
2

サブディビジョンを見たことがあります か?そのようなメッシュを改良するために機能するはずです。

于 2010-07-07T10:03:01.833 に答える
1

双一次内挿(座標系が球の表面上にある場合)の仕事のように聞こえます。

于 2010-07-07T09:58:34.573 に答える