球面上の点

球面上のランダムな点を、計算式で求めることは可能なのだろうか?


▼正解はこちら
http://harumune.s56.xrea.com/assari/index.php?cmd=read&page=%B5%E5%CC%CC%B0%EC%CD%CD%CA%AC%C9%DB&word=%A5%E2%A5%F3%A5%C6%A5%AB%A5%EB%A5%ED

float theta = 2 * acosf(sqrtf(1-randam()));
float phi = 2 * M_PI * randam();

どうやって求めたのだろう?
球面のtheta+⊿thetaの面積は、sin(theta)に比例するはず。


http://www.radiumsoftware.com/0207.html#020723
Jensen 本に載っているらしい。この本持ってるぞ。
この例では、thetaは赤道上が0となっているので、
分布関数は、PI * cos(theta)となっているようだ。