将平面点旋转到特定平面



我有一个系统,其中一个轴从[0->2PI]移动。此移动会生成一个倾斜的平面。轴移动。

这架黄色飞机将是我的目标飞机。我知道这个黄色平面的法向量和它的常数。我可以根据轴(工具(的旋转值计算黄色平面上的XYZ位置。我来到了一个";解决方案";首先计算一个更简单的平面垂直平面[1 0 0]的XYZ坐标作为法向量,因为我知道球体原点和半径,然后很容易基于轴角计算任何XYZ位置。

但我的问题是,现在我在灰色平面上有了XYZ位置:如何将我的XYZ位置定位到黄色平面上的相应位置?从灰色平面到黄色平面,如有建议,不胜感激。

解决方案很简单。。我把它弄得复杂多了。不需要将点从一个平面转换到另一个平面,因为这些值可以根据球体原点和平面方向值轻松计算。

// calculate axis rotation to radians
let radAngle = (angle)*Math.PI/180;
let beeta = (90*Math.PI/180) - radAngle; //rotation value on the circle
let gamma = Math.acos(yellow.normal.x); //plane orientation
// temporary vars
let cb = Math.cos(beeta); 
let sb = Math.sin(beeta);
let cg = Math.cos(gamma);
let sg = Math.sin(gamma);

let x = sphere.origin.x + sphere.radius*(cg*sb);
let y = sphere.origin.y + sphere.radius*(sg*sb);
let z = sphere.origin.z + sphere.radius*cb;

旋转样本

最新更新