查找旋转对象的坐标
Finding the coordinates of a rotated object
这个问题我有 2 个感兴趣的对象。
- Obj1是父对象,圆形精灵
- Obj2是一个嵌套的子对象,一个方形精灵
Obj1 有一个名为 objHolder 的子对象,在 objHolder 里面是 Obj2。
objHolder 的枢轴点设置在 Obj1 的中间,Obj2 放置在 Obj1 的圆周附近。 objective是旋转objHolder,让Obj2看起来像在Obj1的圆周上盘旋。
每一帧,objHolder 都会有一个新的旋转值,该值基于我界面中的一些其他输入值。
我的问题是,如何获取每帧Obj2(相对于Obj1,而非舞台)的x,y坐标?
如果我使用 localToGlobal() 它不会考虑旋转值。有没有更简单的方法?
嗯,应该考虑轮换。你描述你有一个这样的嵌套结构:Obj1 <- objHolder <- Obj2。然后,objHolder 位于可见 Obj1 的中心,Obj2 偏离 objHolder 的中心。现在,如果你给 objHolder 一些旋转,你应该看到 Obj2 旋转并移动一圈。它这样做吗?如果不是,那么你的显示列表不是你描述的那样。如果 Obj2 旋转但不移动,则 Obj2 的枢轴点位于 objHolder 的中心,将其移开。
无论如何,答案是使用两种翻译,首先从源到阶段,然后从阶段到目标。如果您想要一个对象在另一个对象的系统中的坐标,请执行以下操作:
p=target.globalToLocal(source.localToGlobal(new Point()));
在您的情况下,source
是 Obj2,target
是 Obj1。并且,new Point()
是源对象坐标系中坐标为 (0,0) 的点,也就是 source
.
的轴心点
这个问题我有 2 个感兴趣的对象。
- Obj1是父对象,圆形精灵
- Obj2是一个嵌套的子对象,一个方形精灵
Obj1 有一个名为 objHolder 的子对象,在 objHolder 里面是 Obj2。 objHolder 的枢轴点设置在 Obj1 的中间,Obj2 放置在 Obj1 的圆周附近。 objective是旋转objHolder,让Obj2看起来像在Obj1的圆周上盘旋。
每一帧,objHolder 都会有一个新的旋转值,该值基于我界面中的一些其他输入值。
我的问题是,如何获取每帧Obj2(相对于Obj1,而非舞台)的x,y坐标?
如果我使用 localToGlobal() 它不会考虑旋转值。有没有更简单的方法?
嗯,应该考虑轮换。你描述你有一个这样的嵌套结构:Obj1 <- objHolder <- Obj2。然后,objHolder 位于可见 Obj1 的中心,Obj2 偏离 objHolder 的中心。现在,如果你给 objHolder 一些旋转,你应该看到 Obj2 旋转并移动一圈。它这样做吗?如果不是,那么你的显示列表不是你描述的那样。如果 Obj2 旋转但不移动,则 Obj2 的枢轴点位于 objHolder 的中心,将其移开。
无论如何,答案是使用两种翻译,首先从源到阶段,然后从阶段到目标。如果您想要一个对象在另一个对象的系统中的坐标,请执行以下操作:
p=target.globalToLocal(source.localToGlobal(new Point()));
在您的情况下,source
是 Obj2,target
是 Obj1。并且,new Point()
是源对象坐标系中坐标为 (0,0) 的点,也就是 source
.