个人认为这个类存在错误,这些错误又集中出现在最后一个方法getDrawMatrix()里,因此把源码copy下来直接注释:
仍旧以root为坐标系,我把这个方法修改一下,思路是在target的concatenatedMatrix矩阵左边乘上root的逆矩阵,以此将target转换到root参考坐标系。代码如下:
经过测试,这种方法能够适应root的旋转,缩放,平移操作。
另外在测试时发现,碰撞检测时不能够用鼠标拉伸或缩小窗口,否则检测结果不准确。我猜测原因是影响到target的concatenatedMatrix的取值了吧。
本文分析了一个类中碰撞检测方法存在的坐标系问题,特别是最后一个方法getDrawMatrix()中关于坐标转换的部分。通过指出错误并提供修改后的代码,解决了根节点旋转、缩放对碰撞检测准确性的影响。同时,文章讨论了使用根节点作为统一参考坐标系的潜在问题及优化策略。最后,测试表明修改后的方法能够更好地适应各种变换操作,确保碰撞检测结果的准确性。

681

被折叠的 条评论
为什么被折叠?



