雪の結晶を作成する(ProcessingAdventCalendar2016#3)


ProcessingAdventCalendar

今年もProcessingAdventCalendar2016が開催されております。(ちなみに今年は管理の関係上Qiitaに移行しました)
今年は常連様の参加が少なかったので、AdventCalendar存亡の危機にさらされていたのですが、そんな中@n_ryotaさんが2日間素敵なツリー作品を投稿してくださいました。ありがとうございました。


私も何か投稿せねばと思い、急遽3日目を担当することにしました。

今回の成果物

2日間ツリーでしたので、何かツリー縛りで考えたのですが、何も思いつかなかったので、困ったときのGenerative頼みで、雪の結晶を作成することにしました。Generative最高ヽ(・-・)ノ

こんなものができます。

snow

概要

点を描画するパーティクルクラスを作成し、進行方向や速度などを管理することにします。そのパーティクルをArrayListに格納し、ひたすら点を打ち込んでいくだけの簡単なお仕事です。

雪の結晶は6方向に進んでいくので、1パーティクルに対し、60度ずつ回転させながら6回描画すると結晶っぽくなります。

途中で確率で枝分かれを行い、ArrayListに子パーティクルを追加していけば、あとはGenerativeでいい味を出してくれます。永遠とさまざまな形の雪の結晶を作成しますので、ずっと眺めていることができますね。

動くものは下記OpenProcessingで公開しております。

https://www.openprocessing.org/sketch/392536

ソースコード

発展

パラメータを調整すれば、自然界に存在しない10角形の結晶や30角形の結晶も作り出すことができます。
雪の結晶というよりもコースターに近いかな。

snow30 snow10

感想

Generative画像はいつまでも観ていられるので本当に楽しいものです。
来年も素敵なProcessingライフをお送りください。

あと、ProcessingAdventCalendar2016にはまだまだ開き枠がありますので、皆様ぜひぜひご参加ください。
http://qiita.com/advent-calendar/2016/processing


コメントを残す