Math 计算X/Y坐标以偏移相邻轴的Y旋转

Math 计算X/Y坐标以偏移相邻轴的Y旋转,math,2d,computational-geometry,Math,2d,Computational Geometry,我在二维空间中有两条线,由L1a/L1b和L2a/L2b定义,它们具有相同的宽度(或长度X),并且为了简化,Y=0。两条线的旋转轴都位于其中心。 两条线共享一个坐标相同的点,即线1的点L1b和线2的点L2a 图1. L1a-----R1-----L1b L2a-----R2-----L2b L1a L2a -- -- -- -- -R1- -R

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

图1.

L1a-----R1-----L1b L2a-----R2-----L2b
L1a                L2a
   --                 --
     --                 --
       -R1-               -R2-
           --                 --
             --                 --
               L1b                L2b
L1a                
   --                 
     --                 
       -R1-               
           --                 
             --                 
               L1b L2a               
                      --
                        --
                          -R2-
                              --
                                --
                                  L2b
现在,两条线都在Y轴上以相同的角度旋转,例如45度

插图2.

L1a-----R1-----L1b L2a-----R2-----L2b
L1a                L2a
   --                 --
     --                 --
       -R1-               -R2-
           --                 --
             --                 --
               L1b                L2b
L1a                
   --                 
     --                 
       -R1-               
           --                 
             --                 
               L1b L2a               
                      --
                        --
                          -R2-
                              --
                                --
                                  L2b
我想知道必要的计算方法,以便将两条直线的2个点(如果有差异,请选择任意一个)转换为使点L1b和L2a再次共享相同的坐标

插图3.

L1a-----R1-----L1b L2a-----R2-----L2b
L1a                L2a
   --                 --
     --                 --
       -R1-               -R2-
           --                 --
             --                 --
               L1b                L2b
L1a                
   --                 
     --                 
       -R1-               
           --                 
             --                 
               L1b L2a               
                      --
                        --
                          -R2-
                              --
                                --
                                  L2b
我希望我的插图有意义。记住,L1b和L2a应该具有相同的坐标,这在我的插图中不清楚

下面是一个不需要太多数学技能的示例。
所有点定义为:L*(x,y)

示例:旋转y=90度

第一步。旋转后的坐标

L1a( 50,50); L1b( 50,-50)
L2a(150,50); L2b(150,-50)
第二步。直线1点的平移

x=100,y=100

第三步。最终坐标

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

L1a(150150);L1b(150,50)对不起,你的描述有点混乱。你说两条线都有一个旋转中心,但图片和数学似乎得出了相反的结论

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

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

x=半径*cos(角度)

y=半径*sin(角度)

让长度=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))

只是为了确保。之后需要共享相同坐标的始终是点L1b和L2a。例如,如果旋转为180度,使用相同的起始坐标,平移将为x=200,y=0R1和R2始终不同,因为每条线都围绕各自的中心旋转。作为背景信息。我实际旋转的是三个大小相同的正方形图像,它们彼此紧挨着。我想让它看起来,如果所有三个图像实际上是一个正在旋转的图像。为了做到这一点,我需要重新定位的第一个和最后一个图像后,他们每个人都是围绕自己的中心旋转相同的角度,使他们再次排队。对不起,但我仍然很困惑。直线的旋转轴在哪里?