计算旋转图像的位置

时间:2010-08-05 06:20:21

标签: flex

我有几张代表帐篷的图片,如下所示:

6 door tent 8 door tent

帐篷两侧的红色和蓝色部分是门口,几个帐篷可以通过这些门口连接在一起。例如,我想连接两个蓝色的门道,以便它们匹配起来,如下图所示:

Combination of two tents

如果第一个帐篷是静止的,我可以在哪个点旋转第二个帐篷,我该如何计算它的放置位置?

目前,我将每个门口的左上角作为x和y值,以及门的宽度和方向(以度为单位)。我把门口视为一维,所以他们没有高度。另一个代表会更适合这个吗?也许是起点和终点加方向?

我在Flex / AS3中对此进行编码,但我更喜欢思考方式而不是代码,但代码也会受到赞赏!

1 个答案:

答案 0 :(得分:0)

在许多受损的braincells之后修复了这个问题。我所做的是首先将每个帐篷的登记点移动到中心并从那里计算出门口。我还将门口改为单点表示,设置在每个门口的中心。

为了获得第二个帐篷的位置,我做了以下事情:

  1. 旋转第一个帐篷,使右侧门口朝北/向上
  2. 旋转第二个帐篷,使右侧门口朝南/向下
  3. 使用

    计算第一个帐篷门口的位置

    alt text

  4. 通过将第二个帐篷的门口放在与第一个帐篷门口相同的位置来计算第二个帐篷的位置

  5. 旋转第二个帐篷的坐标,旋转第一个帐篷,但方向相反
  6. 来自维基百科的图片:http://en.wikipedia.org/wiki/Rotation_%28mathematics%29