Я сейчас пытаюсь произвольно переместить точку по поверхности сферы. В настоящее время я пытаюсь сделать это, генерируя случайные сферические координаты, а затем преобразовывая их в трехмерные местоположения с помощью функции .setFromSphericalCoords()
Вот как выглядит код, который генерирует новую случайную сферическую координату в каждом кадре:
element.kralenSpherical.phi += Math.random() * 2 -1;
if(element.kralenSpherical.phi <= 0 ) element.kralenSpherical.phi = 0;
else if(element.kralenSpherical.phi >= 180 ) element.kralenSpherical.phi = 180;
element.kralenSpherical.theta += Math.random() * 2 -1;
if(element.kralenSpherical.theta >= 360 ) element.kralenSpherical.theta = 0;
else if(element.kralenSpherical.theta <= 0) element.kralenSpherical.theta = 360;
element.kraal.position.copy(element.BaseLocation.clone().add(sphericalVector.setFromSphericalCoords(element.kralenSpherical.radius, element.kralenSpherical.phi, element.kralenSpherical.theta)));
это вроде работает, но в настоящее время моя точка сферы на самом деле не движется по сфере, а прыгает на огромные расстояния.
Я думаю, это связано с тем, какие значения я предоставляю как phi
и theta
, но проблема в том, что я понятия не имею, каков диапазон значений phi
и theta
.
Если что-то не понятно, дайте мне знать, чтобы я мог уточнить!