Войти
ПрограммированиеФорумОбщее

Как получить случайное направление? (7 стр)

Страницы: 13 4 5 6 7 8 Следующая »
#90
12:46, 9 сен. 2016

Алексей Патрашов
Четвертую страницу открой, там проиллюстрирована проблема.


#91
12:50, 9 сен. 2016

Алексей Патрашов
> На тот случай, если кому-то ещё нужно, для векторов любой размерности работает
> генерация через нормальное распределение.
> 1. Создать вектор со случайными координатами с нормальным распределением каждой
> координаты. У нормального распределения должно быть математическое ожидание 0 и
> стандартное отклонение 1, хотя величина стандартного отклонения несущественна.
> 2. Нормировать вектор.
> 3. Если нужна не вся сфера или плоскость или ещё какое пространство, то для
> соответствующих координат вектора поменять знак.
Звучит интересно. Это математически точно или просто близко к желаемому результату?
Если точно, есть пруфы?

#92
13:13, 9 сен. 2016

Роман Шувалов
Это при равномерном распределении, при нормальном этой проблемы нет. Во всяком случае на гистограммах я ее не смог обнаружить, математического обоснования не искал.

#93
16:06, 9 сен. 2016

Это ж метод напрямую с Википедии.
И доказывается тривиально. Для элемента объёма по (x,y,z) плотность вероятности:
[cht]p(x,y,z)=p(x)\,p(y)\,p(z)=e^{-x^2}\,e^{-y^2}\,e^{-z^2}=e^{-(x^2+y^2+z^2)}[/cht]
Как видим, вся анизотропность убралась.

Другое дело, насколько оно в самом деле равномерно с учётом особенностей плавучки.
На практике довольно неплохо, видимо.

#94
16:14, 9 сен. 2016

Божественное решение. Обязательно запомню.
А четырехмерный вариант как-то применим на практике?

#95
16:45, 9 сен. 2016

-Eugene-
> А четырехмерный вариант как-то применим на практике?
Я применял для моделирования генерации случайного набора характеристик персонажа по векторной системе семимерный вариант.

#96
16:49, 9 сен. 2016

Алексей Патрашов
Ну нет, я ищу какое-нибудь геометрическое применение.

#97
17:22, 9 сен. 2016

Геометрия вряд ли более трёхмерной где-то используется. Можно двух и трёхмерное применение для того, чтобы мобы дрейфовали вокруг базовой точки, если сместить центр при нормализации. Мне понадобилась многомерка для S.P.E.C.I.A.L. чтобы сделать более реалистичную реализацию.

#98
17:32, 9 сен. 2016

-Eugene-
> А четырехмерный вариант как-то применим на практике?
Генерировать случайные повороты.

#99
18:36, 9 сен. 2016

}:+()___ [Smile]
> Генерировать случайные повороты.
Через кватернионы? Я их так и не освоил толком.

#100
21:34, 9 сен. 2016

https://en.wikibooks.org/wiki/Mathematica/Uniform_Spherical_Distribution
The Correct Method

#101
22:08, 9 сен. 2016

Executor
Это мы знаем, это частный случай и для уже четырёхмерного вектора он совсем не годится.

#102
23:56, 9 сен. 2016

Алексей Патрашов
> Это мы знаем

Видимо не очень судя по тому, что я в последних сообщениях видел - зверски тяжёлые вычисления.
Я про код, сообщения читал по диагонали, может уже обсуждали то, что там предлагается.

> для уже четырёхмерного вектора он совсем не годится.

А причём тут четырёхмерный вектор, если автору трёхмерный вектор на юнит сфере нужен?

#103
0:08, 10 сен. 2016

Executor
> зверски тяжёлые вычисления
Три нормально распределенные величины получить это зверские вычисления?

> А причём тут четырёхмерный вектор, если автору трёхмерный вектор на юнит сфере
> нужен?
Я спрашивал

#104
0:14, 10 сен. 2016

-Eugene-
> Три нормально распределенные величины получить это зверские вычисления?

Роман Шувалов
> vx = cos(a2)*cos(a3)-sin(a2)*sin(a3);
> vy = cos(a1)*(cos(a2)*sin(a3)+sin(a2)*cos(a3));
> vz = sin(a1)*(cos(a2)*sin(a3)+sin(a2)*cos(a3));

Ну вот это через чур дофига.
По ссылке что я кинул, проще же. Нет?

> Я спрашивал

Сорян, семь страниц того, что гуглится за одну минуту, я не читал полностью. :) Посмотрел только коды, которые тут приводят.

Страницы: 13 4 5 6 7 8 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.