No.3ベストアンサー
- 回答日時:
■(2)+(1)の方法、つまりバブル法で点を(ほぼ)一様に配置し、ドローネー法でつなぐ方法。
球面上に仮想の泡を浮かべ、ある閾値以下の距離にある泡どうしは反発、閾値以上だと引き合うようにします。
この方法では任意の個数のポリゴンを作ることができます。
多くの場合、1つの点を5つまたは6つの3角形が共有しますが、たまに4つだったり7つだったりします。つまりメッシュに綻びが生じます。
これは球面のトポロジー的性質からくるもので、台風の発生原理と通ずるものがあります。
球面のドローネー法
1.適当な3点をとり、それで囲まれる領域を最初の3角形と考える。球面の場合、囲まれる領域が2つ考えられるので、この時点で2つの3角形が認識された。
2.点を順次追加していく。
2-1.追加された点(Dとおく)は、どの3角形の内側にあるか調べる。
2-2.点Dが含まれる3角形がみつかったら、それを3角形ABCとおく。
2-3.3角形ABCを点Dで3分割する。つまり、3角形ABD、BCD、CADができる。
2-4.3角形ABCに対し、
1)辺ABをはさんで隣接する3角形ABC'
2)辺BCをはさんで隣接する3角形A'BC
3)辺CAをはさんで隣接する3角形AB'C
を考える。
2-5.
1)辺ABを対角線の一つとする台形ADBC'を考え、もしもう片方の対角線DC'の方が短ければ、長い方を消して短い方につなぎ替える。
2)、3)BDCA'、CDAB'についても同じことをする。
2-6.2へ戻る。
■精度の高い球面分割ができる(3)は、球面自己組織化マップ(Spherical SOM)と呼ばれています。
この方法で得られるメッシュは1点を5つまたは6つの3角形が共有し(つまりサッカーボール)、最適かつ均一な配置となります。
ただし、点の数が2+10(4^N)で表現できる自然数でなくてはいけません。具体的には、
N=1のとき12個
N=2のとき42個
N=3のとき162個
N=4のとき642個
N=5のとき2562個
N=6のとき10242個
となります。
疲れたのでとりあえずここまで
この回答への補足
大変丁寧にご説明いただきありがとうございます。
とても興味深く、参考になります。
特に球面自己組織化マップで球面分割できればきれいなメッシュが得られ、正確な変形が出来そうです。
しかし、サッカーボール(を更に三角形に分割したポリゴン)のようなメッシュをかけるにはどうすれば良いか分かりません。
というより、頂点の座標の決定法すら思い浮かびません。
もし、ご存じなら時間があるときでよいので、補足お願いします。
URLでも構いません。
何度も申し訳ございません。
No.2
- 回答日時:
すみません。
補足ですが(2)単独では分割までできないですね(^^;卑怯なやりかたですが(2)を用いて
(ほぼ)一様に分布した点に対して、
距離が一定以上かつ一定以下のものどうしをつないでいく方法があります。
もちろんそれでは3角形じゃないポリゴンが所々できてしまうので、手動で点を追加したりします。
この回答への補足
>閉曲面の有限要素近似で、実際にシミュレーションするということでいいでしょうか。
はい!
>点の数はどのくらいで、精度はどのくらい必要でしょうか?
精度は出来るだけ正確なものが良いです。
しかし処理時間が遅くなりすぎると少し困ります。
多少は遅くなってもかまいませんが、出来る限りリアルタイムで応答し、その中でより正確なものが良いです。
点の数もリアルタイム性を実現できる範囲であれば、より多い方が正確な描画が出来て良いと思うのですが・・・。
是非、ご教授願いたいです。よろしくお願いいたします。
No.1
- 回答日時:
閉曲面の有限要素近似で、実際にシミュレーションするということでいいでしょうか。
点の数はどのくらいで、精度はどのくらい必要でしょうか?
球面の等分割は非常に奥が深く、様々な手法が考案されています。なかでも有力なのは、
(1)球面ドローネー法(ドローネー分割の球面版)
(2)バブルメッシュ法(点どうしに斥力と引力を働かせる)
(3)正20面体から発展させていく方法(精度が高い)
その他らせんを利用した方法等、いろいろありますがそれぞれ利点と欠点があります。
手っ取り早く何も考えなくていいのが(2)ですが、精度はいまいちです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン 色々試してもモニター側で信号が検出されませんでしたと表示され、画面が真っ暗な状態になってしまいます。 3 2022/04/04 21:54
- 物理学 量子力学 球面調和関数 導出 方位角成分 微分方程式の解 2 2022/07/02 13:40
- Perl perlのプログラミング 部分入れ替えの方法 1 2022/10/11 22:26
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- 地球科学 地球内核最中心部における核融合反応の可能性について質問です。 現在地球内核の熱源は地球始原時のエネル 2 2022/05/08 15:57
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- 化学 水ガラスの取り扱いについて 1 2022/04/10 17:22
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
timeBeginPeriodとtimeEndPerio...
-
パソコンに何かが勝手にダウン...
-
A-oneのラベル屋さんについて
-
パソコンのスクリーンセーバー...
-
Excel実行時エラー-2146959355?
-
vb.netからエクセルファイルを...
-
シングルステップの使用方法に...
-
Ruby on Railsでサーバーを立ち...
-
WSLのUbuntuで、Railsのインス...
-
chatGPTで次々と質問をしていく...
-
PC版のMinecraftが応答なしにな...
-
プログラム実行中に強制停止さ...
-
エクセルVBA、ステップモードと...
-
Windowsキーを無効
-
pythonで他のアプリを操作する...
-
プログラミングについてです。...
-
【至急】サクラエディタのファ...
-
VSコード
-
Craving Explorerのバージョン...
-
ターミナルからemacsへのコピペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
timeBeginPeriodとtimeEndPerio...
-
openGLでのグラフィクスの変形...
-
1秒毎に1カウントアップ
-
パソコンに何かが勝手にダウン...
-
A-oneのラベル屋さんについて
-
Excel実行時エラー-2146959355?
-
パソコンのスクリーンセーバー...
-
ラベル屋さんと言うソフトのフ...
-
管理者として実行を毎回すると...
-
chatGPTで次々と質問をしていく...
-
latexでのエラー
-
eclipseで、「ポート番号が使用...
-
PC版のMinecraftが応答なしにな...
-
エクセルVBA、ステップモードと...
-
XAMPPのインストールについて
-
VB.NETでボタンのクリックイベ...
-
EXCEL-VBAでコマンド...
-
Emacsメニューの日本語化について
-
ソフトのバージョンについて
-
iMac OS Mojave 10.14.6で iMov...
おすすめ情報