2008-11-25[n年前へ]
■「範囲(スコープ)」が決まると「構図(レイアウト)」が決まる
目の前にある景色を絵に描こうとすると、「構図(レイアウト)」を決めることがとても難しいことに気づかされます。少し見る方向を変えるだけで、その瞬間に姿を変えてしまう景色を、つまりはありとあらゆる方向に広がっている世界を長方形の平面に描くという作業はとても難しい、と思うのです。
特に一番難しいと感じることは、ありとあらゆる方向に広がる目に見える世界を適当な「範囲」に切り取る、という作業です。もしも、写真機を手に持っていたならば(あるいはデッサンスケールといった道具を使うならば)ファインダーを覗くだけで「世界を切り取る範囲」を確認することができます。けれど、そういった道具がない場合、目の前の景色は本当にありとあらゆる方向に広がっていて、その限りない世界をどのように切り取るか・どんな範囲で描くかを、自分で決めるしかないわけです。
その切り取り方を決めるということ、言い換えると、「範囲(スコープ)」を決めるということをとても難しく感じてしまいます。「範囲(スコープ)」を一度決めてさえすれば、「構図(レイアウト)」はきっと自動的に決まると思うのですが、最初の「切り取る範囲・描く範囲」を決めるということが本当に難しくて、できなくて困ってしまうのです。
もしかしたら、画を描くということだけでなくて、技術的な題材も「範囲(スコープ)を決めれば構図(レイアウト)は自然と決まる」ことが多いのだろうか、とふと考えました。描く(作る)ものの範囲が決まれば、その時に使うことができる技法で描かれるものの配置・繋ぎ方・作り方が自然に決まるのかもしれない、とふと連想しました。さて、実際は一体どういうものなのでしょうか。
2008-12-01[n年前へ]
■「Windows操作を再現するPerlスクリプト」を自動で作る"Win32GuiTest.exe"
PerlでWindowsのGui操作を記述することができるライブラリ Win32::GuiTest を、ppmからインストールするのではなくてWin32-GuiTest-1.56.tar.gzとしてダウンロードしてみると、"Win32-GuiTest Recorder"というwindows アプリケーションが付属していることに気づきました。
"Win32-GuiTest Recorder"が行う動作を「ひとこと」で言ってしまえば、「マウスイベントとキーボードイベントをフックし、得られたマウス操作やキーボード操作をPerlのソースコードとして保存してくれる」というものです。たとえば、「( "Win32-GuiTest Recorder" の)"Record"ボタンを押し、適当にキーボードとマウス作業をしてから、"Stop"ボタンを押す」と、こういったPerlソースコードが自動作成されます。
#!/usr/bin/perl use Win32::GuiTest qw/:ALL/; $Win32::GuiTest::debug = 0; MouseMoveAbsPix(303, 484); SendMouse('{LEFTCLICK}'); SendKeys('{ENT}test{ENT}'); SendRawKey(VK_LCONTROL, KEYEVENTF_EXTENDEDKEY); SendKeys('s'); SendRawKey(VK_LCONTROL, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP); MouseMoveAbsPix(169, 484); SendMouse('{LEFTCLICK}'); SendKeys('{BAC}{ENT}'); SendRawKey(VK_LCONTROL, KEYEVENTF_EXTENDEDKEY); SendKeys('s'); SendRawKey(VK_LCONTROL, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP);
ソースを眺めてみれば、結局、Windows操作を、MouseMoveAbsPix と SendMouse と SendKeys と SendRawKey として記録するだけになります。しかし、Windows上の操作を一回するだけで、スクリプトが自動生成されるというのは、とても便利です。しかも、マウスイベントとキーボードイベントだけを記録するだけでなくて、起動時に表示されるダイアログで"Windows Hint"オプションを付けておけば、「操作を行ったWindowの名前やクラス」を(ソースコード内にコメントとして)記録しておいてくれるのです。これは、後からfindWindowなどを使った処理に変える際に非常に便利です。Windowのクラスや名前を自動で記録しておいてもらえると、たとえば、(画面サイズが異なる他の人のPCで動くように)後でPerlスクリプトを修正したりする作業が実に簡単になります。
単純作業をスクリプトで書く場合には、ソースコードをゼロから書き始めるよりは、叩き台・スケルトンからスタートする方が「とっつきやすい」ものです。もちろん、「とっつきやすい」コースが最終的に楽なコースかどうかは場合によりけりだと思いますが、いじり始める叩き台が自動的に作ってくれるツールというのは、とても便利なものだと思います。
2009-05-23[n年前へ]
■登山の下着の科学を「システム」として考えてみたい・・・!?
「新しい衣服衛生 」を読んでいると、こんな一節がありました。
水は1g当たり、たとえば25℃で583calと大量の気化熱を奪う。よく登山のときには羊毛の肌着を着ると良いといわれる。この理由は、濡れた時の熱伝導率がほかに比して小さい*ということと縮れ構造のかさ高性による保温効果もあり、さらに湿感も少ないが、もっとも重要なことは、繊維中最大の吸湿性(20℃,相対湿度65%で16%)があるため、汗をよく吸いとってくれるということ、そして同時にその吸湿時に発生する多大の湿潤熱により加温されるということがある。この説明には図が付けられていて、布の水分率(%)が上昇すると通常有効熱伝導率(W/m・K)は上昇するが、他の布に比べて羊毛は、全水分率にわたってかなり低い有効熱伝導率であることが示されています。
ちなみに、湿潤熱というのは、熱測定学会の説明をひいてみると、「浸漬熱(現在では"しんせきねつ"とも読むが"しんしねつ"が正しい読み方)あるいは湿潤熱=DHimmは、固体が液体に浸漬した際の固体表面エンタルピーの消失と、それと同時に起きる固-液界面の生成に伴う固液界面エンタルピー発生によるエネルギー変化により生じ、固体表面のエンタルピーhSと固液界面のエンタルピーhSLの差に等しい(DHimm=hSL-hS)」とあります。
登山の下着ひとつを考えるだけで、そこには色々な科学が隠れているものだ、と驚かされます。
ところで、いちばん最初の「登山のときには羊毛の肌着を着ると良い」という説明を読んで、システム・ダイナミクス的に考えてみると、果たして本当に「羊毛の肌着が良い」のかわからなくなったのです。湿度・汗・熱(温度)などを考えた時、果たして「多大の湿潤熱は果たして良いものなのか」がよくわからなくなりました。
下着を湿らすのは周りの湿気や、登山者の汗だと思います。湿気が高い時、登山者が汗をかいた時、湿潤熱が発生することが良いか・悪いかは、その時の気温にも依存する話のように思えます。汗をかいた時に、ますます熱くなってしまうと、もっと汗をかいてしまうことになり、何だか困るような気がします。その登山中の全過程における、気化熱や周りの気温とのバランス次第で、「多大の湿潤熱」が良い・悪いは変わるでしょう。
私は気軽な登山はしますが、本格的な登山というものをしたことがありません。発熱や湿度や発汗の関係、あらゆる作用を考えた動的なシステムとして考えてみると、一体「最適な登山の下着」はどういうようになるのでしょうか?