Войти
ПрограммированиеFAQ

Случайная точка на сфере (случайный нормализованный вектор).

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)