我在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)
我希望这是有道理的。谢谢!
答案 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))