代码之家  ›  专栏  ›  技术社区  ›  Lizzan

计算旋转图像的位置

  •  0
  • Lizzan  · 技术社区  · 15 年前

    6 door tent 8 door tent

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

    Combination of two tents

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

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

    我用Flex/AS3编写了这个代码,但我更多的是追求一种思维方式而不是代码,尽管代码也很受欢迎!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Lizzan    15 年前

    在很多脑细胞受损后,我把它修好了。我所做的是先把每个帐篷的登记点移到中间,然后从那里计算出门口。我还将门口更改为单点表示,设置在每个门口的中心。

    1. 旋转第一个帐篷,使右门口朝北/向上
    2. 旋转第二个帐篷,使右门口朝南/向下
    3. 使用以下公式计算第一个帐篷门口的位置

      alt text

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

    5. 将第二个帐篷的坐标旋转与第一个帐篷的旋转方向相同,但方向相反

    维基百科图片: http://en.wikipedia.org/wiki/Rotation_%28mathematics%29

    推荐文章