先日、こんなツイートを見かけました。
ウォルトディズニー研究所の「複雑な動きをする歯車の設計をコンピュータによって迅速に行いさらに3Dプリンタで出力した」研究。すごくリアルな動き▼Computational Design of Mechanical Characters https://t.co/TAZeT6GFRL pic.twitter.com/kmtumdGV55
— tetsu (@metatetsu) 2016年10月13日
はぇー面白い
人間なんてどんだけ威張ってもしょせん回転してるだけなんやな...という気分にさせてくれます。
こういう歯車とかジョイントとか関節とかでできた機械のことを「リンク機構」と言うそうです。なんとなく、子供心を刺激されるものがあります。これが家にあったら寝食を忘れて回し続けてしまうことでしょう。
ていうかこれ数式で表現できそうやん! ワイも作ってみたいぞ!
作った
作りました。
いいですねえ。ずっと見てられます。数式だけで出来てるとは思えない人間のリアルさというか、足腰にギュっと力入れる感じのとことか最高にグッときますね。まぁそのへんはもとの機械のすごさなのですが。
こちらの数式は以下のリンクから見ることができます。
見るだけでなく、いろいろといじることができます。黒で表示されている5つの固定点は直接動かせるので、例えば一番上の点をちょっとプラス側に動かしてみるとこうなります。
彼は仕様上腕が曲がらないので爆弾運んでるみたいになる点はご容赦ください。
この動画をtwitterに貼ったところ「こんなことできるのか」「どうやってるんだ」「こんなの作るには何勉強したらいいんだ」などの声がありましたので、解説というほどでもないですが「どうやって出来てるのか」ということにちょっと触れておきたいと思います。
つくりかた
基本的には、なんのことはない、画像にグラフを重ねて置いていってるだけであります。
まず動かない点が5つあるのでそれらを座標平面上に指定します。
歯車の半径を指定してその上に点を取って回します。
さて、ここからが本題なのですが、
この図中の「点1」とは、一体どういう点でしょうか。ちょっと考えてみましょう。
そうだね。点3と点4からの距離が常に等しくなる点だね。
点3は点2の周りをぐるぐると動いているわけですが、点3がどれだけ動いても点3〜点1間と、点4〜点1間の距離は常に同じまま変わらないわけです。というか、同じまま変わらないような位置に点1をとる、といった感じでしょうか。
もともとが3Dプリンタの樹脂かなんかでできた物体ですから、ジョイント部分は伸び縮みができないのであたりまえっちゃああたりまえです。しかし数式で表現するとなるとそこを意識しておくことは重要です。
では実際にそのような位置に点を置くにはどうすればよいのか。こうですね。
点3と点4をそれぞれ中心とする円どうしの交点をとればいいわけです。2円の交点に点1があることをご確認ください。
平面図形「円」とはそもそも、ある一点からの距離が等しい点の集まりです。だとすると「2円の交点」とはなんなのかというと、2つある円の中心からの距離が等しい点になるというわけです。
さて。実はもうこれだけでほぼ完成です。残りの点もすべて、またどこか別の2点からの距離が等しい点になっています。具体的に見てみましょう。
というわけです。
はい。
たったこれだけのことで、いくら点をぐるぐる動かしても形が崩れない機構ができあがってくれるというのは感動的です。数式で作っているからこその感動といえるでしょう。
2円の交点を求める実際の式はこちらを参考にさせていただきました。ありがとうございます。
「円と円の交点を求める」だなんてやってることは単純なのにかなり複雑な式になるんですね。
点どうしをつなぐ
すべての点が用意できたら、あとは点どうしをつないでいくだけです。いろいろやり方はあるかとは思いますが、今回は媒介変数を使いました。
点と点をつなぐには、という式をおいてをからまで動かせば描けます。こういう式のおき方のことを媒介変数表示といい、のことを媒介変数といいます。
この式はどういう仕組みかと言えば、「点と点をに内分する点において、がからまで動くときの軌跡」として線分を書く、といった感じです。
ちょっとよくわからないのでためしにをに代入してみるとこの式はとなり、片方の点そのものになります。
今度はを代入してみましょう。をかけてとが消えて、が残ります。これはもう片方の点にほかなりません。
ではとの間にあるとか入れてみるとどうなるでしょう。これは定義に則れば、点と点をに内分する点ですから、つまりに内分する点ということになり、これは要するに中点です。
だと、とかだとに内分する点となり、同じことを〜間のすべての実数でやると、点と点をつなぐ線分ができるという寸法です(下図)。
できあがり
あとはすべてのジョイント部分でこれをやれば完成です。やっていることは、
①点をとる
②2点からの距離が等しい点をとる
③点どうしをつなぐ
ただこれだけなんですね。ただこれだけだからこそ、こんな単純な工程であれだけ複雑な動きをするものが生み出されるなんて数学ってすげーッ!!っていう感慨が増す気がします。
こういうの見てると他にもいろいろ作ってみたくなりますね。たとえば、拙作ですが過去にこんなものを作ったりしてます。
棒の長さを自由にいじって遊べるてこクランク機構シミュレーターを作ったよhttps://t.co/oBsKMA3Lui pic.twitter.com/K3PvSJAy07
— 鯵坂もっちょ@通販予定 (@motcho_tw) 2016年2月12日
数式エディタさえあればできるので、この記事がみなさんのリンク機構つくるあそびの一助になれば幸いです。
ではまた。