新人求助贴!!!坐标系转换!!

节点1的旋转角度是38°,缩放是(1,0.5),怎么将该节点坐标转换为正常无旋转和缩放节点的坐标?
1728920920730

有没有大佬帮帮我

啥意思啊大佬

很难吗,有人会吗?

invertWorldTransform(node:Node){
let unitM = Mat4.IDENTITY.clone();
Mat4.toRTS(unitM, node[’_lrot’], node[’_lpos’], node[’_lscale’]);
// let unitIM = unitM.invert();
// node._mat = node.worldMatrix.multiply(unitIM);
// node.invalidateChildren(TransformBit.TRS);
}
预想的是用单位矩阵,进行跟节点相同的变换,得到矩阵unitM
把节点矩阵 乘以 unitM的逆矩阵,实现还原
但是发现下面的步骤不写也能生效,这个有点神奇。。。

大佬教下怎么用,我是主节点map,下面子节点gridScale缩放是(1,0.5),下面gridNode的旋转是38,gridnode里面放的是网格,我就想通过点击网格获取网格坐标转换成map的坐标

这个更简单了,你把需求说清楚啊

convertTo(A:Node, pos: Vec3, B: Node): Vec3 {
let wp = A.parent.getComponent(UITransform).convertToWorldSpaceAR(pos);
return B.parent.getComponent(UITransform).convertToNodeSpaceAR(wp);
}

使用方法:
let pos = this.convertTo(gridnode, 点击网格获取的坐标, map的节点);
这个pos就是你要的坐标

convertTo函数的作用就是,已知A节点下的点pos,求该点对应B节点下的哪个坐标

this.map.parent.getComponent(UITransform).convertToNodeSpaceAR(子节点的世界坐标);