2012-11-18[n年前へ]
■「黒パンツを覆う白生地中の光収支方程式」問題をエクセルで解いてみよう!?
検証!「夏目アナの脇汗事故はなぜ起こったか?」ー灰色の服が汗染みに弱い理由では、脇汗をかいた時、着衣の外見がどのような色になるかを考えてみました。
今日は、別の着衣の「外見色」問題、「白生地で覆われた黒パンツは一体どんな風に見えるのか?」という(いわゆるひとつの)「黒パンツを覆う白生地中の光収支方程式」問題を、表計算ソフトであるエクセルを使って解いてみることにします。
「白い生地」は光を散乱/拡散させる素材です。 簡単のために、白生地が完全に光を散乱/拡散させるものと近似すると、生地中の微小領域(部分)を考えれば、その領域は周囲に等方に光を発するということになります。 逆に言うと、「白生地の各領域は周りから発せられる光を受ける」ということです。 そんな風に考えると、(下図に描いたように)白生地の各領域の輝度は、「周囲の輝度の平均」を用いた形の式で表されることもわかります。つまり、この「黒パンツを覆う白生地中の光収支(輸送)方程式」は熱伝導方程式などを解いたのと同じやり方、エクセルで「反復計算(循環参照計算)」を使えば解くことができるのです(下図参照)。
それでは、実際にエクセルを使って「白生地で覆われた黒パンツは一体どんな風に見えるのか?」問題、すなわち、「黒パンツを覆う白生地中の光収支方程式」問題を解いてみることにします。(参考までに、今回作ったエクセルのファイルはここに置いておきます)
まずは、エクセルに『体の上の「黒パンツ」』を示す「反射率分布」を白黒(1,0)で造ってみます(上図のA1からQ16までの領域)。
そして、その下に(B19からQ34までの領域)に「(黒パンツを覆う)白生地」を作ります。
白生地の各領域には "=(上+下+左+右)/6 + 自分×反射率/6+1/6" といったような式を入力します。
そして「反復再計算」を実行すると「白生地で覆われた黒パンツは一体どんな風に見えるのか?」をエクセルが計算してくれるわけです。
また、「数値の大小が色を表すような書式」にしておけば、計算結果をそのまま濃淡のイメージとして眺めることもできます。
さて、体の上に「黒パンツ」があるとして(上図の右上部分)、その「黒パンツ」を覆う白生地が(外見上)どんな輝度に見えるかの計算結果を示したのが、上図の右下部分です。 (白=1, 黒=0)という色で示した計算結果を眺めてみると、白生地越しの黒パンツはずいぶん「ぼやけた姿」となって見える、ということがわかります。 単純な計算ですが「確かにそんな感じ」という結果になりました。
下着が透けてしまう・それとも大丈夫(透けない)といった「着こなし」の問題に悩んだときは、その問題を表計算ソフト・エクセルを使って「実際に解いてみる」という解決策はいかがでしょうか?
2012-11-20[n年前へ]
■エクセルで作った3D視点ジェットコースター・ゲーム
「エクセルで作った3D視点ジェットコースター・ゲーム」 (Excel Unusual)がとてもスゴくて面白いです。Excel2003以降対応のエクセルシート(XLS)をダウンロードして、"GO!"ボタンを押すと、ジェットコースターが走り出し、そのジェットコースターに乗っている気分を三次元視点で味わうことができます。(Excel 2011 for Macでも動作しました)
このエクセルシートはVBAも使っていますが、そのコードはとても短いものです。シートとコードを眺めて、「あぁ、こういう風に作ったのか!」と感心するのも面白いかもしれません。
2013-03-18[n年前へ]
■Excel 2013で描いた「おっぱい曲面 2013」
去年の今頃、Excel 2010(Windows版)を使い、「エクセル・グラフを綺麗な配色にするアプリでおっぱい曲面を描いてみる!?」と遊んでみましたが、今日は、出荷されたばかりのExcel 2013(Windows版)で同じ「おっぱい曲面 2013」を描いてみました。
Excelが標準に使う色は(互換性などの理由もあり)「何だかイマイチな色使い」ですが、半透明にしたり・色を滑らかに心地良い色にしたりすると…Excelだって「とても魅惑的なグラフ」を描き出すことができます。
もちろん、それはExcelが頑張っているだけでなく、この曲面自体の魅力が大きいようにも思います。…というわけで、今日はExcel 2013で「おっぱい曲面 2013」を描いてみました。
2013-04-28[n年前へ]
■エクセルのグラフ配色をマトモにするためのツール(2013年版)
先日、Microsoft ResearchがMicrosoft Excel上で時空間上に各種データをマッピングすることができるアドイン「GeoFlow」のプレビュー版をリリースしました。このアドインは確かに凄いのですが、エクセルという道具を振り返り眺めてみれば、「これじゃない〜!」という気持ちを強く感じてしまいます。何より先に、グラフの配色を直感的にマトモにしてくれよ!と思うわけです。
というわけで、「エクセルのグラフ配色をマトモ・自由自在にするためのツール(2013年版)」(Excel Chart Designer 2003/2007/2010/2013)をリリースしました。…といっても、以前作ったソフトのバグフィクスおよびOffice 2013 for Windows での動作確認を行うとともに、Excel 2007以降でエクセルのグラフ配色を操作するためのRubyスクリプトを同梱した程度です。
たとえば、左下はExcel 2003のデフォルト配色チャートです。そして、それをExcel 2003上でマトモに変えてみた結果例が、右のチャートです。
Excel 2007以降ではチャート面の透明度も設定できるので、たとえば右に貼り付けたExcel 2013での実行画面を眺めれば、チャート面を半透明に透けさせることで、隠れてしまう部分の値を見せることもできます。
このツールを使うには、次の手順を行います。まず、配色を変えたいエクセルのチャートを選択した状態で、(Excel 2003用、もしくは2007〜2013用の)配色操作ソフトを立ち上げます。そして、縦軸の最小値・最大値・刻み幅を設定した上で、変更したい配色を選びます(あるいは任意のグラデーション画像を選びます)、そしてボタンを押すと、Excelを外部から操作してチャート配色が綺麗に変更される、という具合です。
エクセルが作る直感的でない配色のグラフ、そして、そんな配色のグラフが配置された資料を見て「うーん何だかなぁ…」という気持ちになっていた人には、お勧めかも!?
Mac OSX版も作ってみました(エクセルのグラフ配色をマトモにするためのツール OSX 版)。
2013-04-29[n年前へ]
■エクセルのグラフ配色をマトモにするためのツール(OSX 版)
Windows版のMicrosoft Excelで「エクセルのグラフ配色をマトモにするためのツール(2013年版)」を作ったら、次はMac OSX 版Excelでも、グラフ配色をマトモ・自由にカスタマイズしてみたくなります。そこで、今日はMac版Microsoft Excelのチャート配色を操作するRubyスクリプトを書いてみました。
作ったのは、RubyからAppleScriptを経由して、Excelを操作するスクリプトです。そのため、まずは、
sudo gem install rb-appscriptと、(RubyからAppleScriptを使う)rb-appscriptをインストールします。そして、Mac_Ruby_Script.zipをダウンロード・解凍し、その中にある excel_chart_designer_for_osx.rb を引数(順に、値の最小値・最大値・透明度の順番で)次のように呼びます。
ruby excel_chart_designer_for_osx.rb -1 1 0.05 0.5すると、エクセルのアクティブチャートの配色が自動的に調整されます。たとえば、下に貼り付けたチャートは、左が「実に不自然なエクセルのデフォルト配色のチャート」で、右が上記のスクリプトで配色をマトモにしたエクセルのチャートです。
作ったスクリプトは、①エクセルに接続し、②エクセルのデフォルト配色パレットを(テンプレートファイルから)読み込んだ上で、③軸操作をし、④調整したい色に一番近いパレット(インデクス)をチャートの各領域に対して設定する、という動作を行います。RubyからAppleScript経由でOfficeのTheme Sheme(テーマ・スキーム)の色を設定することができそうになかったので、とりあえず調整したい色に近いインデックスカラーを選び・塗りつぶす、というようにしてみました。
Mac OSX で MicrosoftExcel を使っている人がどれだけいるかはわかりませんが、今日はMac OSX 版のMicrosoft Excel のチャート配色をマトモ・自由自在に調整するためのRubyスクリプトを書いてみました。