2007-04-14[n年前へ]
■Icosahedron Worlds
"Icosahedron Worlds" は、好きな画像ファイルから、のりしろなども付いた正二十面体の展開図を作成するWEBサービスです。あなたの手元にある画像ファイルを、ブラウザ画面からアップロードするだけで、自動的にサーバー内で画像変換が行われて、ブラウザ画面に正二十面体の展開図が表示されます。表示された正二十面体の展開図を印刷すれば、あなたの画像ファイルを実際の正二十面体として組み立てることもできます。
処理された展開図は、ブラウザ上では一見小さな画像に見えます。しかし、実際には非常に大きなサイズの画像ファイルです。画像上でマウスを右クリックでもすれば、展開図の画像ファイルをローカル・ディスクに保存することができます。ダウンロードした展開図を好きなサイズでプリンターから印刷すれば、好きな大きさの正二十面体を作り出すことができます。
たとえば、Texture Mapなどから、さまざまな画像ファイルをダウンロードして、地球や月や火星などの天体の地図をもとに小さな正二十面体を作ってみても面白いでしょう。あるいは、パノラマ写真から、水晶玉のように周囲の景色を中に封じ込めた不思議な正二十面体を作ることもできるでしょう。いろいろな使い方がきっとあります。"Icosahedron Worlds" は、好きな画像ファイルから正二十面体の展開図を作成し、20の顔を持つ小さな空間を作り出すWEBサービスです。
今のところ、サーバにアップロードした画像ファイルを削除する機能はありません。そのかわり、アップロード時に自動的に暗証番号が付加され、その暗証番号を指定しなければ、アップロードした画像にアクセすることはできないようになっています(たとえば、アップロード後に表示されるhttp://www.hirax.net/map/index/16?code=186604のcode=186604の部分がその暗証番号です)。もしも、アップロードして作成した画像や展開図に、後でアクセスしたい場合には、ブラウザ・アドレスバーに表示されているURIをメモするなどしておいて下さい。このhttp://www.hirax.net/map/index/16?code=186604というアドレスを他の人に知らせたならば、手元の写真を正二十面体の展開図にしたものを友達に見せることもできます。友達と一緒に撮影した写真などを「展開図」にして、見せてみるのも楽しいかもしれません。友達の顔をした正二十面体を作るのも面白いかもしれません。一枚の写真から、掌の上にのる小さな世界を作る、"Icosahedron Worlds" は、そんな風に1枚の2次元の画像から、いろいろな面を持つ3次元の空間を作り出すWEBサービスです。
2007-08-23[n年前へ]
■うれしい一日
wgetでコンテンツをダウンロードしたサイトが二つある。そして、ファンレターを書いたサイトが一つだけある。wgetでダウンロードしたサイトは、「今日の必ずトクする一言」で、wgetでダウンロードもして、なおかつ、ファンレターも書いたのは、もちろん「ちゃろん日記(仮)」だ。その観察眼と、その目が眺める景色と、その文章がとても好きだった。
だから、「ちゃろん日記(仮)」は更新が途絶えてからも、時折、眺めに行っていた。そういうわけで、今日も、眺めに行くと、「ちゃろん日記(仮)移転のお知らせ」と、更新されていた。
思えばこの数年でweb日記はブログに進化(?)し、いまや1人1つはブログを持っているイキオイな時代です。
2008-07-23[n年前へ]
■「肌」と「昼の日差し」のスペクトル
夏の日差しを実感するようになりました。肌は日焼けして赤黒くなり、そんな肌はピリピリと痛く、熱っぽさすら感じます。そんな、夏の明るい景色を眺めていると、なぜか楽しくなります。
痛いけれど日焼けする夏の日差しが気持良く感じる人もいる一方で、日焼けする夏を嫌う人も多いと思います。特に日焼けしたくない女性にとっては、夏は面倒でとても嫌な季節だったりするのかもしれません。
…と考えているうちに、ふと、夏の日差しを浴びる「肌の色」を眺めてみたくなったのです。そこで、2週間ほど前に作った「光スペクトル操作用のMathematicaライブラリ」にいくつかの色関数(スペクトル吸収関数)を追加してみました(サーバからダウンロードできるライブラリ更新は数日後になります)。追加したスペクトル吸収関数は、「血液」「カロチン」「メラニン」…といったもので、皮膚内部にある物質の吸収スペクトルを表現するための(単純化した)スペクトル関数を実装してみました。
そういった色関数を組み合わせると、いろいろな「肌色」を眺めることができるます。たとえば、右上の図は、(どの波長も均等に含んでいるような)白色光源で照らした時に血液の反射スペクトルがどう見えるかを試しに計算してみたものです。
spectorPlot[transmissionSpector[
whiteLight, bloodColorFilter, 0.5]
]];
ところで、こんな「色関数」を作り、適当で大雑把な「肌」を作って眺めてみました。すると、色温度6500ケルビンの標準光源、すなわち自然な昼光光源であるD65で、肌色を形作るメラニンや血液を照らしてみると、意外なほど「反射スペクトル」が平らになるものだ、と気づかされました。
つまり、昼の日差しのスペクトルのうち、スペクトル強度が強い短波長領域では、メラニンや血液などの色吸収率が高く、その一方、「昼光」のスペクトル強度が低下する長波長域では、メラニンや血液などの色吸収率が低く、それらの結果として反射スペクトルが”結構”均等になるのだなぁ、と感じたのです。たとえば、右のスペクトルグラフが、昼光=D65光源で皮膚を照らした時の反射スペクトルの例になります(ちなみに、右下のグラフがD65光源のスペクトルです)。
それは、単に長波長領域の光は皮膚中で吸収されることが少なく、短波長の光が吸収される、というだけのことでしょうし、さらには、人によってメラニンの分布量・形状が異なり、反射スペクトルは全然違うわけで、こんな結果も一般的なものでは全くありません。
けれど、「昼光の逆関数のような、まるで、強い日差しから身を守るかのように最適化されたような皮膚の吸収スペクトル」を適当に作ったライブラリ関数が生成したのを眺めたとき、とても不思議なくらい新鮮さ・意外な面白さを感じたのです。
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スクリプトを修正したりする作業が実に簡単になります。
単純作業をスクリプトで書く場合には、ソースコードをゼロから書き始めるよりは、叩き台・スケルトンからスタートする方が「とっつきやすい」ものです。もちろん、「とっつきやすい」コースが最終的に楽なコースかどうかは場合によりけりだと思いますが、いじり始める叩き台が自動的に作ってくれるツールというのは、とても便利なものだと思います。