[LayaAir 2.0]求一个关于球面旋转差值的算法代码

已知AB,AC,将AC在ABC平面内朝向AB旋转指定角度,然后求旋转后C点的坐标,求代码
未标题-5.jpg
已邀请:

sand

赞同来自:

把全部东西向量化,,,先求面ABC的法线,这个直接有公式的,点乘还是叉乘自己找,然后AC绕着法线旋转一定角度,这个可以用四元组解决,Laya也有相应的接口。然后求得一个新的向量就是你要的东西了。。。

bingo

赞同来自:

问题不严谨,都没明说坐标系, 假如 A点为 坐标原点, 水平向右为x轴正方向。 竖直向上为y轴正方向。且AC向量为(x1, y1) 则
C点坐标为 (x1, y1). 如果 AC旋转指定角度为θ. 则新的 C`坐标为(r*cos(θ+θ`), r*sin(θ+θ`)).
其中 r= 根号下(x1*x1+y1*y1).       θ`=  y1/x1的正切反三角

NilZ

赞同来自:

        //求AC AB的叉积
        Vector3.cross(AC, AB, out);
        //单位化一下
        Vector3.normalize(out, out);
        //得到旋转轴
        Vector3.add(A, out);
        //得到旋转矩阵
        Matrix4x4.createRotationAxis(out, 指定角度, outMatrix);
        //旋转向量
        Vector3.transformV3ToV3(AC, outMatrix, newAC);

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作