Как получить случайные координаты на поверхности сферы? Сейчас вместо сферы куб и точки получаются примерно следующим образом :{
vertices.push(100000);
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(-100000);
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(100000);
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(-100000);
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(100000);
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(Math.randFloat(-100000, 100000));
vertices.push(-100000);
}
как проделать тоже самое со сферой

21 Авг 2019 в 06:04
171 +1
0
Ответы
1

Для получения случайных координат на поверхности сферы, можно воспользоваться сферическими координатами. Пропустим первую строку из вашего кода и добавим следующий код для генерации случайных точек на поверхности сферы:

for (let i = 0; i < numPoints; i++) {
let phi = Math.random() * Math.PI * 2;
let theta = Math.acos(2 * Math.random() - 1);
let x = Math.sin(theta) * Math.cos(phi) * radius;
let y = Math.sin(theta) * Math.sin(phi) * radius;
let z = Math.cos(theta) * radius;
vertices.push(x);
vertices.push(y);
vertices.push(z);
}

В этом коде numPoints - это количество случайных точек, которые вы хотите сгенерировать, radius - радиус сферы.

Этот код использует сферические координаты для генерации случайных точек на поверхности сферы. Переменная phi задает угол поворота вокруг оси Z, а переменная theta задает угол между вектором и осью Z. Затем используется преобразование из сферических координат в декартовые координаты для получения координат точки на поверхности сферы.

20 Апр в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир