javascript/math - 项目围绕圆圈旋转不当

标签 javascript math geometry three.js

我试图将一系列平面排列成一个圆圈,“面向”中心,但在经过 180 度后,我得到了一些奇怪的结果。我的对象正确分布在圆圈周围,但旋转关闭。我已附上屏幕截图,我的代码如下:我的方程有什么问题?

var circleRadius = 12;
var diameter = circleRadius*2;
var centerX = -5;
var centerZ = -2.5;

var mpi = Math.PI/180;
var startRadians = startAngle + mpi;
var totalSpheres = 8;
var incrementAngle = 360/totalSpheres;
var incrementRadians = incrementAngle * mpi;

for ( var i = 0; i < totalSpheres; i ++ ) {

    var xp = centerX + Math.sin(startRadians) * circleRadius;
    var zp = centerZ + Math.cos(startRadians) * circleRadius;

    var camObj = new THREE.Mesh( new THREE.PlaneGeometry( 1*camSize, .75*camSize ), material );

    camObj.position.x = xp;
    camObj.position.z = zp;
    camObj.rotation.y = i*incrementAngle; //MH - do this without degrees
    console.log(camObj.rotation.y);
    startRadians += incrementRadians;

    scene.add( camObj );

}

alignment of objects

最佳答案

我可能是错的。从未使用过该库,但在 github 中查看它似乎旋转应该以弧度而不是度数为单位。

var circleRadius = 12;
var diameter = circleRadius*2;
var centerX = -5;
var centerZ = -2.5;

var mpi = Math.PI/180;
var startRadians = startAngle + mpi;
var totalSpheres = 8;
var incrementAngle = 360/totalSpheres;
var incrementRadians = incrementAngle * mpi;

for ( var i = 0; i < totalSpheres; i ++ ) {

    var xp = centerX + Math.sin(startRadians) * circleRadius;
    var zp = centerZ + Math.cos(startRadians) * circleRadius;

    var camObj = new THREE.Mesh( new THREE.PlaneGeometry( 1*camSize, .75*camSize ), material );

    camObj.position.x = xp;
    camObj.position.z = zp;
    camObj.rotation.y = i*incrementAngle * (Math.PI/180.0); //MH - do this without degrees
    console.log(camObj.rotation.y);
    startRadians += incrementRadians;

    scene.add( camObj );

}

关于javascript/math - 项目围绕圆圈旋转不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436132/

相关文章:

javascript - 在 Javascript 中对 Nodelist 上的每个项目执行函数

javascript - 随着时间的推移,Allure 报告不断增长并需要更长的时间来生成

Javascript Node.js Unicode 正则表达式

javascript - 为什么我的 WebSocket 使用 Flask 自动关闭?

javascript - 两个三 Angular 形相似吗

c++ - 完美的填充三角形渲染算法?

python - 计算n维圆弧路径

ios - 如何在网格上选择最接近中心的线?

excel - 根据单元格中的数字将单个单元格扩展到多行 - EXCEL

java - 如何使用 jmonkeyengine3 (或者可能是另一个库)找到 3D 空间中两条线的交点?