{{category 雑記}} (昔のウェブページより転載。元記事は平成14年9月2日(月)) *[My implementation of fractal digital sundial.|http://theochem.chem.okayama-u.ac.jp/wiki/wiki.cgi/matto?page=%A5%C7%A5%B8%A5%BF%A5%EB%C6%FC%BB%FE%B7%D7&file=sundial%2Emp4&action=ATTACH] (MP4, 8MB) *[Sliced topview of the object|http://theochem.chem.okayama-u.ac.jp/wiki/wiki.cgi/matto?page=%A5%C7%A5%B8%A5%BF%A5%EB%C6%FC%BB%FE%B7%D7&file=topview%2Emov&action=ATTACH] (QuickTime, 0.4MB) *[GEB (ただしフルスペルで)|http://theochem.chem.okayama-u.ac.jp/wiki/wiki.cgi/matto?page=%A5%C7%A5%B8%A5%BF%A5%EB%C6%FC%BB%FE%B7%D7&file=GEB2%2Emp4&action=ATTACH] (MP4, 20 MB) {{youtube 2C8uYiIcIF8&t=2s}} *[横に回転すると縦に回転する立方体|http://theochem.chem.okayama-u.ac.jp/wiki/wiki.cgi/matto?page=%A5%C7%A5%B8%A5%BF%A5%EB%C6%FC%BB%FE%B7%D7&file=vertical%2Emp4&action=ATTACH] (MP4, 5 MB) !!はじめに 太陽が移動するにつれて太陽光や太陽光が作る影が移動することを利用して、その移動の軌跡に時刻をあらかじめ書いておくことで、現在の時刻を割りだすのが日時計だ。 我々が日常使う時計には大きくわけてアナログ式とディジタル式の2通りがある。日時計をこの分類にあてはめるならばまぎれもなくアナログ式である。では、ディジタル式の日時計というのは作れないのだろうか? ディジタル式ってなんだろう。例えば、昔のシトロエンのスピードメーターには、文字盤上に針を回転させる代わりに、数字を書いたドラムを回転させて、正面に表示される数字が今の速度を表わす、という変わったのがあった。しかし、これをディジタル式と呼ぶにはかなり抵抗がある。やはり、ディジタル式と言うためには、固定された表示枠に現在時刻が数字で明示されなければいけないと思う。 同じようなことを考える人は実は何人もいて、実際に特許もとられ、商品化もされている。それらの[写真|http://www.digitalsundial.com/]を見る限り、非常にうまく機能している。ディジタル日時計にはおおまかに2つの流派があるようで、ひとつは特殊な加工をしたスリットから光を通すと、その角度によって異なる文字が透過するタイプ、もう一つの方法は、特殊なスリットと導光ファイバーを組みあわせ、7セグメントの表示器に光を導く方法である。 スリット方式の長所は製作が容易なこと、短所は朝夕にはスリットに対してかなり斜めに光が入ることになり、表示が暗くなることだ。後者のファイバー方式はスリット式よりも柔軟なデザインができる。スリット方式のこれらの欠点を補うような改良もいろいろ思いつくのだが、ここは全く別のデザインを試みる。 Ian StewartのScientific American誌のコラムに、"What in heaven is Digital Sundial?"という話がある。これは、太陽にかざした時に、その影が角度によって変化するような物体を作ったとすれば、その形状はフラクタル(fractal)なものになるだろう、というお話である。有名なGoedel-Escher-Bach(げーでるえっしゃーばっは)という本の表紙には、見る角度によってGに見えたりEに見えたりBに見えたりする物体が描かれているが、物体がフラクタルな形状をとっていれば、もっとたくさんの像を埋めこむことができるはずだ、というのだ。 G-E-Bオブジェクトのような単純な形であれば、発泡スチロールのブロックと糸鋸があれば作れるが、フラクタル形状を手作りするのは不可能なので、まずはプログラム化してみることにした。 !!アルゴリズム 3次元のオブジェクトの中に、ドットを一点置いてみては、それによって各方向から見た文字像がより鮮明化するか、より乱れるかを判定し、鮮明化する点をつぎつぎに置いていく。 これを繰り返すことで、見る方向によって異なる文字像が見えるオブジェクトを作ることができる。 要するにMonte Carlo法を行うわけだが、私が本業で扱っている問題に比べれば素性のよい問題のようで、特殊なサンプリングを行わなくてもかなり良い解を得られる。 現状でもかなり見られる画像を得ることができるが、実用性を考えれば、最適解を求めることに力をそそぐよりも、より速く近似解を得られるアルゴリズムを考案したい。 !!プログラム 埋めこむ文字数が多くなってくると、オブジェクトは小さな点の集まりになり、まさにフラクタルな形状になってくる。GEBのオブジェクトのようにつながったひとかたまりの物体ではなくなるので、現実に製作するとすれば、アクリルの塊のなかに埋めこむような手法をとらなければならない。 このサンプルでは、ある軸周りでの回転しか想定していないが、例えば12面体の各面方向に1から6の文字を埋めこむ(透過してしまうので、たとえば5の裏はやはり5になってしまうため、12面体でも6種類の文字しか使えない)ことで、透過式のサイコロを作ることも可能だろう。 ただし、実際にこれをアクリルで作っても、回折や屈折などのために鮮明な像は得られなさそうである。このプログラムではある方向から見た時に、その軸上に一点でもあれば暗く射影され、点が一点もなければ明るく射影される、と想定しているが、実際にはその軸上にいくつの点が重なっているかで明度がかなり変わってしまうはずである。 点がいくつ重なっているかで明るさがlinearに変わるとすれば、それはMRIの画像と同じ原理になるので、写像から原像を数学的に逆算できるだろう、しかし、このようなLinearなケースでは、見る方向によってドラスティックに表示が変化するディジタル日時計のようなものを設計することはできないように思われる。 回折を逆に利用して、角度によって違う像を埋めこむこともできる。いわゆるホログラムがこれにあたる。ホログラム日時計はおそらくまだ誰も製作していないだろうから、挑戦してみてはいかがだろうか。 !!Links //{{comment}} {{timestamp 1234428945}}
<< | 2021-1 | >> | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
2019/8/29
2019/5/28
2019/5/13
2018/12/9
2018/10/11