X / Y坐标的计算以抵消邻域Y偏转

时间:2014-02-07 23:45:32

标签: math 2d computational-geometry

我在2D空间中有2条线,由L1a / L1b和L2a / L2b定义,它们具有相同的宽度(或X的长度),并且为了简化Y = 0。两条线的旋转轴都在其中心。 两条线与相同坐标共享一个点,即线1的点L1b和线2的点L2a。

插图1。

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

现在两条线在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)

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

2 个答案:

答案 0 :(得分:0)

我很抱歉,但你的描述有点令人困惑。你说两条线都有一个旋转中心,但图片和数学似乎都得出结论。

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

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

x =半径* cos(角度)

y =半径* sin(角度)

答案 1 :(得分:0)

让长度= 2r;

选择轴,以便: L1a =( - 2r,0)L2a = L1b =(0,0)L2b =(2r,0)

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

顺时针旋转x alpha后

L2a =(r * cos(x)-r,-r * sin(x))L1b =(-r * cos(x)+ r,r * sin(x))

所以翻译将是: (2r-2r * cos(x),2r * sin(x))