紅葉を数式で描く

2022/11/10

processing プログラム 紅葉

 数式を使って木の葉を描くことに挑戦してみた。


processingというプログラムを使って、以下のような作品を描くことができた。


どのような仕組みでこのような絵を、プログラムで描いたのかを以下に説明する。



極座標を使う



最初の絵にかかれているたくさんの葉は、上のような葉のパラメータを変化させて描いたものである。一枚一枚の葉は次のような単純な数式で描いている。

上の図のハート型のような葉を描くために、右上の山形の数式を用意する。横軸は角度θで0°から360°、縦軸はrである。そしてθにしたがってrを山形に変化させていくと、ハート型の図形を描くことができる。

山の形を変えると、ハートの形も変わる。山をとんがらせると、より細くてとんがったハートを描くことができる。

鋸歯


山形に上のようにギザギザをつけると、ハートもギザギザになって、より葉っぱらしくなってくる。

複数枚の葉

山形を3つにすると、葉っぱの数も3つになる。そして7つにすると、葉っぱの数は7つである(下図)。

葉っぱらしく整える


ただ、これだけではまだ紅葉には遠い。そこで、0°から360°という角度を制限して、たとえば60°から300°にしてみる。山形をこのように変えることで、少し紅葉に近い形になってくる。


そして、さらに山の高さを変えて、180°から離れるにつれて小さくなるようにしてやる。

紅葉の完成

これが紅葉の基本的な形である。これにギザギザを加えて、葉柄を付け、色をつければ紅葉の完成ということになる。



葉っぱのバリエーション


ギザギザの数、トンガリ具合、おしりの部分の開き具合、色、大きさ、傾きなどを乱数でバラバラにし、100枚程度の葉っぱをばらまくとそれらしく見える。

まずは葉っぱ1枚の画像。



葉っぱ2枚の場合は、なんとなく双葉を連想させるので、色を緑にしてみた。


葉っぱが3枚と4枚の場合はクローバーを連想。



葉っぱが5枚、7枚はやはり紅葉。



このように、基本的な数式は共通で、パラメータを変えることによって、様々な葉を描くことが可能となった。

なかなか面白い。このやりかたでもっと多くの葉や、花なども描くことができそうだ。

次は、紅葉が上からひらひらと舞い落ちる様子を動画にしてみたいと思うが、ちょっと時間がかかりそう。