SSブログ

パワーポイントで遠近法の絵を描く [コンピュータ]


絵を描くツールとして意外と重宝なのがパワーポイント。いろんな既定の図形が用意されているし、手作業で動かしたり、前後関係を調整したり出来る。均等配置で並べたり出来るのも便利だ。この機能はワードでもエクセルでも共通だが、パワーポイントは400%まで拡大出来るから細かいところまであわせることが出来る。

欠点としてはCADではないので寸法関係が目分量になってしまうことだ。これはマクロを使うことで対処できる。あまりパワーポイントでマクロを使っている人はいないようだが、寸法を考慮した図を描こうと思えばマクロを使うのがやりやすい。

いろいろと使い方に工夫しているとだんだん欲が出てくる。物事をビジュアルに説明しようと思えば図面よりもスケッチがわかりやすい。それは3次元を表現できるからだろう。遠近法で描いた絵は自然で理解しやすい。しかし、これをパワーポイントで描こうとおもうとなかなか容易でない。そもそもパワーポイントは斜め線すら得意でないのだ。

これもやっぱりマクロでなんとかなる。しかし、なかなか手の込んだことをやらねばならない。まず3次元座標を決めて、それを2次元の遠近法座標に変換する。次に図形を面に分解して、見る角度によって異なる「見える面」を選び出す。この面を順次描いていけばいいのだが、それにも順番がある。レンダリングはなかなか難しい。

一週間かかりの試行錯誤で悩みながら描いてみた絵がこのようなものだ。もっと、簡単にかける方法があれば知りたいものだ。実際、かなり高級なCADでもパース図はなかなか完璧ではない。

-------------------------------------------------------------------------------------------------------------


[手(チョキ)]<遠近法の書き方を知りたいと言うアクセスが多そうなので、追加を書きます。>[るんるん]


考え方としては、広角に広がる景色を、キャンバスの中に押し込むのだから、空間を実際に縮めたらどうなるかと考えればよい。横をx、縦をy、奥行きをzとすると、奥行きzに従って全てが縮むと考える。どんな縮み方をするかと言うと、無限遠ですべてゼロになりz=ゼロでは元の大きさとするのがよろしかろう。するとその変換関数として一番簡単なものは
x'=x*fz/(fz+z)
y'=y*fz/(fz+z)
z'=z*fz/(fz+z)

ということになる。fzは遠近法の強さに関する定数で、全てが半分になる奥行きのことである。小さくすると望遠レンズ大きくすると広角レンズの見え方になる。マクロを使って図を書く手順をプログラムにする。このプログラムでは図を座標で書いて行くわけだが、実際に書く前に、すべての座標値をこの式で変換する。これだけだと真正面から見た「最後の晩餐」みたいな絵だが、実際は斜めから見る場合が多い。それはこの変換のあとに普通の回転変換をして斜めに見た図にすればよい。 最後に出力するときは、二次元への投影だから、z座標をすべてゼロにすればよい。

問題は「重なり」でどれが前に出てどれが後ろに隠れるかというレンダリングの問題だ。後ろから書いて行くということで大体はうまくいくのだが、細かいところでは書く図によっても異なり、プログラムの中での判断は結構難しい。今のところ個別に対応しているので書くのに時間がかかってしまうのだ。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。