不知是不是算法问题,我用 vec 的 rotate 函数计算的结果是有错误的,cc.v2(0,1).rotato(-90度的弧度),得出来的结果是cc.v2(-1,6),不应该是cc.v2(-1,0)吗

不知是不是算法问题,我用 vec 的 rotate 函数计算的结果是有错误的,cc.v2(0,1).rotato(-90度的弧度),得出来的结果是cc.v2(-1,6),不应该是cc.v2(-1,0)吗

感谢反馈。
这个问题经过验证,得出的结果应该不是 cc.v2(-1,6), 而是(-1, 6.123233995736766e-17), 也就是一个无限接近于 (-1, 0)的。这个是因为JS的精度导致的。

你可以在获取后对数值已经处理一下。

        let p = new Vec2(0, 1);

        let r = Math.PI / 180 * 90;

        p = p.rotate(r);

        console.log(p);

1赞