【发布时间】:2019-08-09 01:51:59
【问题描述】:
我现在正在尝试在球体表面上随机移动一个点。目前我正在尝试通过生成随机球坐标然后使用函数.setFromSphericalCoords()将这些坐标转换为3d位置来做到这一点
这就是每帧生成一个新的随机球坐标的代码:
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 的值范围是什么。
如果有不清楚的地方,请告诉我,以便我澄清!
【问题讨论】:
标签: javascript three.js 3d spherical-coordinate