エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
単位球面に対してランダムに点を生成する - ushiostarfish’s diary
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
単位球面に対してランダムに点を生成する - ushiostarfish’s diary
概要 単位球面に対してランダムに点を生成する方法はたくさんありますが、Marsagliaの方法が大変エレガ... 概要 単位球面に対してランダムに点を生成する方法はたくさんありますが、Marsagliaの方法が大変エレガントで感動したので、それをまとめておこうと思います。 単純な方法 一つの単純な方法としては、単位球内の乱数を生成してそれを正規化することです。単位球内の乱数は、単に単位球外を棄却する方法が使えます。例えば以下のような実装が考えられます。 inline glm::dvec3 sample_on_unit_sphere(PeseudoRandom *random) { glm::dvec3 d; double sq = 0.0; do { d.x = random->uniform(-1.0, 1.0); d.y = random->uniform(-1.0, 1.0); d.z = random->uniform(-1.0, 1.0); sq = glm::length2(d); } w