2014-02-07 199 views
0

我有两条由L1a/L1b和L2a/L2b定义的2D空间,它们具有相同的宽度(或X的长度),为了简化Y = 0。两条线的中心都有旋转轴。 两条线共享该相同坐标的点,即从1号线指向L1b中和从2号线X/Y坐标到相邻的Y偏移量的计算

插图1.

L1a-----R1-----L1b L2a-----R2-----L2b 

两条线现在正在旋转点L2a而Y轴使用相同的角度,例如45度。

插图2.

L1a    L2a 
    --     -- 
    --     -- 
     -R1-    -R2- 
      --     -- 
      --     -- 
       L1b    L2b 

我想知道必要的计算翻译的任一线路的2点(选择任何你喜欢的,如果它有差别),以点L1b和L2a再次共享相同的坐标?

插图3

L1a     
    --     
    --     
     -R1-    
      --     
      --     
       L1b L2a    
         -- 
         -- 
          -R2- 
           -- 
           -- 
            L2b 

我希望我的说明是有意义的。请记住,L1b和L2a应该具有相同的坐标,这在我的插图中并不清晰可见。

这是一个不需要太多数学技能的例子。
所有点被定义为:L *(X,Y)

实施例:度旋转Y = 90度

L1a( 0,0); L1b(100,0) 
L2a(100,0); L2b(200,0) 

步骤1.坐标旋转后

L1a(50,50); L1b(50,-50) 
L2a(150,50); L2b(150,-50) 

第2步。翻译1号线的点

X = 100,Y = 100

第3步:最终坐标

>>L1a(150,150); L1b(150, 50)<< 
    L2a(150, 50); L2b(150,-50) 

我希望这是有道理的。谢谢!

+0

只是为了确保。之后总是需要共享相同坐标的点L1b和L2a。例如,如果旋转是180度,使用相同的起始坐标,则平移将是** x = 200,y = 0 ** –

回答

0

对不起,但你的描述有点混乱。你声明两条线都有一个旋转中心,但图片和数学似乎都以其他方式得出结论。

假设R1和R2是线条的旋转中心,它听起来像是在寻找所有4个点的圆形旋转。要做到这一点,你需要做一些三角学。

您将增加一个表示圆上点的角度的计数器。然后:

X =半径* COS(角度)

Y =半径* SIN(角度)

+0

R1和R2总是不同的,因为每条线围绕它们自己的中心旋转。作为背景信息。我实际旋转的是三个相同尺寸的方形图像,它们彼此相邻。我想让它看起来像这三个图像实际上是一个正在旋转的单个图像。为了做到这一点,我需要重新定位第一张和最后一张图像,然后每张图像都围绕自己的中心旋转相同的角度,使它们重新排列。 –

+0

对不起,但我还是很困惑。线的旋转轴在哪里? – shmyq

0

设长度= 2R;

选择轴线使得: L1A =( - 2R,0)= L2a而L1b中=(0,0)= L2b的(2R,0)

中心是C1 =( - R,0)C2 = (r,0)

x阿尔法顺时针旋转后: L2a =(r * cos(x)-r,-r * sin(x))L1b =(-r * cos(x)+ r, R *的sin(x))

所以翻译为: (2R-2R * COS(X),2R *的sin(x))