プロが教える店舗&オフィスのセキュリティ対策術

mathematicaで球体にメッシュを切り,そのメッシュの交点座標のリストを取得したいと考えています.
solidworksで作成したソリッドにメッシュを切ると三角形のメッシュになってしまいます…
各軸方向でメッシュの本数を指定したいので三角形のメッシュや四角形のメッシュが存在します.

mathematicaにお詳しい方,ご教授お願い致します.

A 回答 (1件)

残念ながらMathematicaにメッシュ分割アルゴリズムは組み込まれていませんので、


自力で実装することになりますが、質問に曖昧なところが2点があります。

1) メッシュ分割の対象とするのが球体(3次元)なのか球面(2次元)なのか
 球体、ソリッドならば得られるメッシュは四面体や六面体になります。
 三角形や四角形のメッシュは球面を分割して得られるものです。

2) 「各軸方向でメッシュの本数を指定したい」の「各軸」が、直交座標系なのか球面座標系なのか
 直交座標系で球体or球面を分割するのは問題に無理があります。
 球面座標系であれば、(r, θ, φ) → (x, y, z)を計算するだけですが、極や原点付近で特異点ができます。

各々の場合に対する回答ですが、
・球体で直交座標系 or 球面で直交座標系 → 問題を見なおして下さい
・球面で球面座標系 → 極に特異点ができますが、以下のコードになります。
DeleteDuplicates@Flatten[Table[N[{Cos[f] Sin[t], Sin[f] Sin[t], Cos[t]}], {f, 0, 2 Pi, 2 Pi/20}, {t, 0, Pi, Pi/10}], 1]
・球体で球面座標系 → 極と原点に特異点ができますが、以下のコードになります。
DeleteDuplicates@Flatten[Table[N[{r Cos[f] Sin[t], r Sin[f] Sin[t], r Cos[t]}], {f, 0, 2 Pi, 2 Pi/20}, {t, 0, Pi, Pi/10}, {r, 0, 1, 1/10}], 2]

何に使用するメッシュを作成したいのかが不明ですが、
単純に分割しようとする限り、あまり綺麗なメッシュにはなりません。
メッシュ分割アルゴリズムの文献を当たるのが良いと思います。
    • good
    • 0
この回答へのお礼

ご丁寧な回答ありがとうございます.
球面をメッシュ分割し,メッシュの交点から球面の外側に向かって線を引きたいと考えています.
→(ウニのような形状を作りたいです)

球面を三角形メッシュ分割したSTLファイルをImportしてもいいのですが,今回は四角形メッシュで作成したいのです.

いろいろ検討してみます.
Mathematicaについて無知ということもあり,初歩的な質問で申し訳ありませんでした.

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

お礼日時:2016/06/05 16:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!