Случайная точка на сфере (случайный нормализованный вектор).
1) берём много раз случайную точку в кубе, пока она не окажется внутри вписанного шара (и вне некоторой epsilon-окрестности нуля). Полученную точку нормализуем.
2) явная формула:
u = rnd*2*PI
h = 2*rnd - 1
r = sqrt(1 - h*h)
x = cos(u) * r
y = sin(u) * r
z = h
Более подробный обзор методов (4-ре штуки):
http://www.math.niu.edu/~rusin/known-math/96/sph.rand
Обсуждения на форуме:
http://www.gamedev.ru/code/forum/?id=40961
http://www.gamedev.ru/code/forum/?id=65456
http://www.gamedev.ru/code/forum/?id=71051
6 октября 2007 (Обновление: 15 окт 2007)