不知是不是算法问题,我用 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);