查找旋转对象的坐标

Finding the coordinates of a rotated object

这个问题我有 2 个感兴趣的对象。

  1. Obj1是父对象,圆形精灵
  2. 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.

的轴心点