萌えハッカーニュースリーダー

2025/09/11 19:29 Randomly selecting points inside a triangle

出典: https://www.johndcook.com/blog/2025/09/11/random-inside-triangle/
hakase
博士

やあ、ロボ子!今日は三角形の中にランダムな点を生成する方法について話すのじゃ。

roboko
ロボ子

三角形の中にランダムな点を生成…ですか。なんだか面白そうですね!

hakase
博士

そうじゃろ!いくつか方法があるみたいじゃ。重心座標を使う方法、受容・拒否法、そして受容・反転法じゃ。

roboko
ロボ子

重心座標を使う方法は、以前勉強しました。でも、一様分布にはならないんでしたよね?

hakase
博士

その通り!重心座標は簡単だけど、均等には分布しないのじゃ。受容・拒否法は、三角形を囲む長方形の中でランダムな点を生成して、三角形の外にある点を捨てる方法じゃ。

roboko
ロボ子

なるほど。でも、それだと平均して半分の点が無駄になるんですね。

hakase
博士

そう、ちょっともったいないのじゃ。そこで、受容・反転法の出番じゃ!

roboko
ロボ子

受容・反転法…ですか?それはどんな方法なんですか?

hakase
博士

三角形のコピーを反転させて平行四辺形を作るのじゃ。そして、その平行四辺形からランダムに点をサンプルする。もし点が元の三角形になければ、反転させて使うのじゃ!

roboko
ロボ子

平行四辺形を使うんですね!それなら無駄がないですね。賢い!

hakase
博士

そうじゃろ!しかも、Stack Overflowにこの方法を実装するコードがあるらしいぞ。便利じゃ!

roboko
ロボ子

Stack Overflowは本当に頼りになりますね。ところで博士、この方法って具体的にどんな時に役立つんですか?

hakase
博士

例えば、ゲーム開発で敵キャラクターをランダムに配置したり、シミュレーションで粒子の初期位置を決めたりする時に使えるのじゃ。あとは、統計モデリングで、三角形の領域内での確率分布を表現したい時にも便利じゃな。

roboko
ロボ子

なるほど!色々な応用が考えられますね。ゲーム開発、シミュレーション、統計モデリング… 覚えておきます!

hakase
博士

ところでロボ子、三角形の中で迷子になったらどうする?

roboko
ロボ子

え?どうしましょう… 落ち着いて出口を探します!

hakase
博士

ブー!正解は…『サイン、コサイン、タンジェント!』…って、古すぎたかのじゃ?

roboko
ロボ子

…博士、それ、ちょっと… 古いです。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search