连杆系统:比你想象中的更强大
icon2 Brain Storm | icon4 2010-06-22 4:45| icon341 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com

    在机器时代,作为机械构造的理论工具,连杆系统曾一度成为数学界中最热门的话题。所谓连杆系统,就是一些刚性的小杆在端点处以转轴的方式相连,形成的一个机械装置。固定某些顶点的位置之后,其余的动点就能画出一些有趣的轨迹。比方说,固定线段 AB 的其中一个端点 A ,则顶点 B 将描绘出一个绕 A 点的圆周。

  

    连杆系统最激动人心的,莫过于一些简单的连杆装置能够描绘出非常复杂的曲线。例如,上面的右图就是由五根相同长度的线段构成的连杆。固定 A 、 B 两个端点后,显然 C 和 D 描绘出的都是圆弧,但 E 点的轨迹就很难以想象了。事实上, E 点的轨迹相当的诡异,需要用一些复杂的代数语言才能描述。

 


 
    在连杆系统领域中,有一个困扰人类近百年的难题——利用连杆系统是否能画出直线来?当时看来,这个问题是如此的困难,以至于人们普遍猜测甚至试图去证明,能画出直线的连杆压根儿是不存在的。 1864 年,一位法国海军军官 Charles-Nicolas Peaucellier 发明了第一个能画出直线的连杆系统,在当时引起了极大的轰动。 Peaucellier 连杆的原理并不难理解,利用初中几何知识足以证明 Peaucellier 连杆的正确性。

  

    Peaucellier 连杆是由 7 根连杆组成的,其中 AC=AD=a , BC=CE=ED=DB=b , OB 为任意长。固定 A 点和 O 点的位置,使得 OA 的距离恰好等于 OB ,则 E 点将会描绘出一条垂直于 AO 的直线来。容易看出, A 、 B 、 E 三点在同一条直线上。我们首先说明, AB·AE 是一个常数。过点 C 作 CH⊥AE ,垂足为 H 。于是 AB·AE = (AH+HE)·(AH-HB) = AH2 - BH2 = (AC2 - CH2) - (BC2 - CH2) = a2 - b2 = 常数。

  

    为什么 AB·AE 为常数,就能保证 E 点的轨迹是一条直线呢?过 A 点作出圆 O 的直径 AM ,在射线 AM 上找出一点 N 使得 AM·AN 也等于这个常数。由于 AM·AN = AB·AE ,我们立即可知 △ABM∽△ANE ,因此 ∠ANE = ∠ABM = 90° ,也就是说 EN 与 AN 始终垂直。这就证明了, E 点的轨迹确实是一条与 AO 垂直的直线。

 
 
    解决了连杆画直线的问题后,数学家们显然还不满足。很多迹象都表明,连杆系统比我们想象中的更强大,画出一些更奇怪的图形似乎不成问题。
    有一个非常简单的构造几乎是瞬间增强了连杆系统的功能,让人们更加相信构造复杂连杆的可能性。虽然连杆系统要求杆与杆必须在端点处连接,但我们可以利用三角形的稳定性,把某根杆的一端直接接到另一根杆的中间。如下图,虽然 AB 和 BC 是两根各自能绕着 B 转的连杆,但简单地用三角形固定一下, AB 和 BC 将会变成一条线段 AC 。利用这一基本构造,我们就能把连杆的端点直接连在另一根连杆的中间了。

  

 
    这一基本构造极大地激励了我们——我们何不像研究尺规作图一样,借助最基本的构造,构造出更实用的基本构造,逐渐搭建起连杆作图的大厦呢? 1877 年,英国数学家 Alfred Kempe 顺着这个思路研究下去,最后得出了一个惊人的结论:连杆系统不仅能画出直线和圆,还能画出双曲线、抛物线、椭圆,甚至半立方抛物线、双纽线等复杂的曲线。事实上,任何代数曲线 f(x,y) = Σ(i=1..n) Σ(j=1..n) Ci, j · xi · yj = 0 都是可以用连杆系统画出的!

 
  

    这个证明的基本思路是这样的。首先,以 O 为端点构造两个菱形。利用 Peaucellier 连杆,我们可以让 x 点和 y 点始终沿着两条垂直的直线运动。固定 O 点后,我们就建立起了一个平面直角坐标系。接下来,我们需要把 y 点绕着原点顺时针旋转 90 度。假设菱形 OCyD 的边长为 l ,则构造连杆 OC' = C'y' = y'D' = D'O = l , CC' = DD' = √2 l ,这样我们就把 Oy 的长度转移到了 x 轴上。接下来,我们将用一系列连杆构造出一个点 T ,使得 T 始终在坐标系中的 (f(x, y), 0) 的位置上。然后我们将构造出一个点 S ,使得 S 始终在坐标系中的 (x, y) 位置上。最后,我们把 T 点的位置固定在 (0, 0) ,则 S 点就将描绘出 f(x, y) = 0 的图象来。
    为了得到 T(f(x, y), 0) ,我们只需要实现对 x 轴上的点的以下四种操作:

      (1) 把某个点的坐标加上一个常数 c
      (2) 把某个点的坐标乘上一个常数 c
      (3) 把两个点的坐标相加
      (4) 把两个点的坐标相乘

 
    

    前两个操作并不困难。对于 x 轴上的某个点 p ,为了得到点 z=p+c,只需要固定两个距离为 c 的点 A 、 B ,并构造一系列平行四边形即可。为了得到点 z=c·p,我们只需要构造一组相似三角形 OAp 和 OBz ,使得 OB=c·OA , Bz=c·Ap 。添加一个连杆 pC 使得四边形 ABCp 为平行四边形,以保证这两个三角形是相似的。注意,在乘法器的构造中,我们用到了前面所说的基本构造,即连杆中间直接连接另一根连杆。

 
    

    把两个变量相加也比想象中的容易。事实上,我们不但能在 x 轴上对两个动点做加法,还能直接实现一个更强的基本操作——对平面上的两个向量进行相加。只需要构造一系列的平行四边形,容易证明向量 Oz 即是向量 Op 和 Oq 之和。

 
    

    但是,对 x 轴上的两个变量进行相乘就有些麻烦了。注意到,由于 p·q = ((p+q)2 - (p-q)2) / 4 ,因此只要我们能实现平方操作,也就有了实现乘法的方法。而由于 1/(p-1) - 1/(p+1) = 2/(p2 - 1) ,因此只要我们能实现倒数操作,也就有了实现平方的方法。在证明 Peaucellier 连杆的正确性时,我们已经证明了,在上图中的连杆中有 z·p = a2 - b2 ,利用它我们便能实现 z = (a2 - b2)/p 。取 a 、 b 为适当的值,我们就能得到 p 的倒数了。

    由于 x 和 y' 都已经在 x 轴上了,利用上面的这些基本操作,我们便能得到 T(f(x, y), 0) 。另外,利用向量加法器,我们可以得到 Ox 和 Oy 的向量和 S = (x, y) 。将 T 点的位置固定在原点 O 处, S 的轨迹就是 f(x, y) = 0 的图象了。
    Kempe 的结论最令人惊讶的地方莫过于,由于各种曲线都能用代数曲线近似地描述,因此连杆系统几乎可以视为万能的了。因此,如果你足够有耐心的话,你甚至能构造一个连杆系统,它能签出你的大名来!

41 条回复

  • 楼层: 沙发 | | GeniusYan 说:

    沙发~~~终于抢到了~~~

  • 楼层: 板凳 | | Aeris.J 说:

    Sofa~

  • 楼层: 地毯 | | Climber.pI 说:

    2L..

  • 楼层: 地板 | | DebugL~ 说:

    请问大家第一个证明怎样保证E点始终是在直线上的,因为我觉得那个证明只能保证在那两个点是在直线上的啊
    我认为如果可以保证四边形cbde是正方形的话应该就可以了,但是,一定是正方形吗?

  • 楼层: 地下室 | |   说:

    神奇

  • 楼层: 地基 | | Tweets that mention Matrix67: My Blog » Blog Archive » 连杆系统:比你想象中的更强大 -- Topsy.com 说:

    [...] This post was mentioned on Twitter by 皆是虚妄 and 阳阳猪的 GR Share, chengeng. chengeng said: 连杆系统:比你想象中的更强大 http://goo.gl/NUcA [...]

  • 楼层: 地壳 | | 倒倒 说:

    不活了,我也要学数学。

  • 楼层: 地幔 | | izzz 说:

    前十

  • 楼层: 地核 | | madlax 说:

    神奇~~

  • 楼层: 10楼 | | Магсн 说:

    很无聊的博文- -

  • 楼层: 11楼 | | Nigh 说:

    有意思。。

  • 楼层: 12楼 | | ppwwyyxx 说:

    很不无聊的博文--
    我是学数学的所以。。

  • 楼层: 12a楼 | | Rzuin 说:

    LS 这不好

  • 楼层: 14楼 | | aijisud 说:

    很强大~

    要是我在中学看到这篇文章,我一定会试试这些连杆系统的,可是现在大学了,没时间没兴趣了...

    唉...

  • 楼层: 15楼 | | biohu 说:

    签出我的大名。。。。

  • 楼层: 16楼 | | maa04 说:

    把固定点去掉,如果不出现三角形结构,画出来的线更难描述……

  • 楼层: 17楼 | | wuzhengkai 说:

    大师!

  • 楼层: 18楼 | | sb 说:

    kao./....来晚了

  • 楼层: 19楼 | | Eagle_Fantasy 说:

    你设计一个能画出Matrix67的连杆吧~期待

  • 楼层: 20楼 | | zrp 说:

    画出不连通图案(如Matrix67)的连杆系统是需要三维或者以上的吧?

  • 楼层: 21楼 | | Jollwish 说:

    玩过Phun的人都知道这个东西。。用Phun模拟连杆系统很强大。。

  • 楼层: 22楼 | | Marvin 说:

    理论上只能画出复连通图案吧

    对了,这似乎和机器人学关系挺大,机器人机械臂的运动空间使用矩阵描述的,证明起来也许比纯几何方法要简洁一些

  • 楼层: 23楼 | | h2feo4 说:

    有一本书叫
    专门讲各种铰链杆机构如何绘制直线
    类似的原版书我有数G(朋友从诺丁汉大学图书馆扫描的)
    还有50cm厚的复印件
    M67有兴趣的话我可以发一些给你

  • 楼层: 24楼 | | h2feo4 说:

    有一本书叫《How to Draw a Straight Line》
    专门讲各种铰链杆机构如何绘制直线
    类似的原版书我有数G(朋友从诺丁汉大学图书馆扫描的)
    还有50cm厚的复印件
    M67有兴趣的话我可以发一些给你

  • 楼层: 25楼 | | Richie Deng 说:

    刚才搜了一下,《How to Draw a Straight Line》这本书在Google Books上有全文阅读的,是扫描版

  • 楼层: 26楼 | | ilhrx 说:

    我们机械设计老师说,有以前的机械前辈,专门写了本图册,收录了各种连杆机构的图形,以供查询。

  • 楼层: 27楼 | | yh 说:

    ...

    借地方求书on numbers and games

  • 楼层: 28楼 | | xxzc 说:

    http://hi.baidu.com/%D0%C2%CF%E7%D5%C5%B3%CF/blog/item/0d5b2cfa5c8bed69034f56ad.html

    可以找这个做后一个的动画

  • 楼层: 29楼 | | 欧迪雅 说:

    如果不出现三角形结构,画出来的线真的很难描述

  • 楼层: 30楼 | | Bcnof 说:

    这个很强大……

  • 楼层: 31楼 | | 晓而不羽 说:

    有没有超越曲线?

  • 楼层: 32楼 | | h2feo4 说:

    to 31楼
    平面杆机构能绘出的超越曲线例如三角函数,应该能用杆机构做傅里叶变换
    另外,有间隙或者死点的机构有很强的非线性,可以用于计算例如绝对值
    空间机构能算的就更多了

  • 楼层: 33楼 | | Jollwish 说:

    怎么可能签出大名,画出来的肯定是连通图啊。。

  • 楼层: 34楼 | | Mimee 说:

    M67 去兼修数学吧 不然我看着可惜.......

  • 楼层: 35楼 | | sb 说:

    拜wish牛

  • 楼层: 36楼 | | 都市圈 说:

    楼主好猛,这个E点也好好玩啊

  • 楼层: 37楼 | | 北京婚纱摄影工作室 说:

    拜读拜读,博主真牛人啊,分析的

  • 楼层: 38楼 | | Hemrione 说:

    to h2feo4
    你好,我想了解更多关于连杆的知识。请问有哪些书可看?
    求您的联系方式。谢谢!
    jihe_dp@163.com

  • 楼层: 39楼 | | Joyer 说:

    只对第二个图形的生成感兴趣。

  • 楼层: 40楼 | | AAquARK 说:

    = =很不错啊

  • 楼层: 41楼 | | AngelQuark 说:

    您是搞数学研究的么?很好很强大哦!

您也随便说几句吧:

您可以在 Gravatar 设置您的头像。