ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】Curl Noiseを実装する。

成果物 Houdiniを使っていてCurl Noiseというものが気になったので調べてみると、3次元ベクトル場の回転を求めるだけで実装できることが分かったので、やってみました。吸い込みや巻き込みなく、一か所に集まったりしないというのが特徴で、実際に上手く動作…

【Processing】Delaunay図、Voronoi図とPolygon offsetを組み合わせて、破片が小さくなって消えていくアニメーションを作る。

成果物 Delaunay www.youtube.com Voronoi www.youtube.com もっと早く作りたかったのですが、内側にオフセットするというのがなかなか曲者で、処理が非常に難解です。また、パーツの厚みで消えるまでの時間が異なるので、色を変えることによって違和感をな…

【Processing】ガウシアンぼかしを使ったReaction Diffusionアルゴリズム

成果物 www.youtube.com Houdiniで、Reaction Diffusionをボリュームのぼかしを使ってシンプルに実装していた方がいたので、Processingで仕組みを確かめてみました。Gray Scottを使った場合とはまた違った結果になって面白いです。 様々な値でのテスト ※左上…

【Processing】迷路を浸食し、A-Starアルゴリズムで最短経路を調べる

成果物 www.youtube.com 迷路の出っ張った部分を削除していけばまるで浸食されるような結果が得られるのではないかということでやってみました。また、浸食された迷路は洞窟のように広い空間があるので、よりA-Starアルゴリズムの性質が分かりやすいです。 …

【Processing】画像から音を生成する。

成果物 www.youtube.com NASAで星の音の音源を探していると、画像のY座標を周波数、輝度を音量?のようにして音を生成しているページを見つけたので、さっそく実装してみました。ただ、あまりたくさんの音を重ねるとうまくいかなかったので、少ない数を足し…

【Processing】ACSII ArtをFloyd Steinberg Ditheringで滑らかにする。

成果物 www.youtube.com もはや、Ascii Artと呼んでいいのか分からないぐらいの大きさです(笑)今回は、画像を少ない色で表現するFloyd Stainberg Dithering という仕組みを使って、滑らかな表現に挑戦してみました。左下がFloyd Stainberg Dithering あり…

【Processing】画像の勾配にそって粒子を移動させ、特徴をはっきり表現する。

成果物 www.youtube.com この動画を見て、衝撃を受けたので、どんな仕組みなのか考えてみました。堀が深い部分に粒子が集まっている印象を受けたので、画像の勾配を使って粒子を動かしてみると、なかなかうまくいきました、さらに、滝のような効果が生み出せ…

【Processing】円盤に音声スペクトラムを記録する

成果物 www.youtube.com こちらの動画を見て、とても良いアイデアだと思ったので、自分でも作ってみました。本家にはかないませんが、動きは再現できました。 https://www.youtube.com/watch?v=H3UqKe_Bwoc 仕組み Minimというライブラリを使って音声の周波…

【Processing】DelaunayとVoronoi図で、動画のシーン推移のアニメーションを作る。

成果物 今回は、過去に作ったHull Voronoiを使ってチャンネルのイントロのためのシーン推移のアニメーションを作ってみました。 Delaunay www.youtube.com 使用例 www.youtube.com Voronoi www.youtube.com 仕組み 過去の記事を参考にしてください。 nekodig…

【Processing】9点円を実装する。

成果物 www.youtube.com 前回、傍心のコードを書いたので、その延長として9点円を実装してみました。 仕組み 9点円は垂線の足3つ、辺の長さ中点3つ、垂心と頂点の中点3つを通る円のことです。 三角形の五心についてはこちらをご覧ください。 nekodigi.hatena…

【Processing】もう少し早く知っておきたかったコツ、Tipまとめ。

きっかけ 私は現在、数名の人にProcessingを教えていて、そういえば始めたばかりの時はこんな事も知らなかった、早く知っておきたかったということがあったのでまとめておこうと思います。 一覧 Ctrl+Fで単語を検索、置き換えも可能。 三項演算子、条件式が…

【Processing】三角形の五心を全て実装する

成果物 www.youtube.com 今まで、外心をよく使っていたのですが、垂心や傍心などはほとんど使ったことがなかったので実装してみました。三角関数を使って表されている場合もあるのですが、計算の負荷などを考え、使わずにする方法をなんとか見つけました。 …

【Processing】薄明光線を再現する。

成果物 www.youtube.com 散歩をしていると、薄明光線を見つけたので、Processingでできないかと思って実装してみました。 仕組み BlendModeをAddに変更したうえで、Perlinノイズで線の透明度を変化させるとこのようになります。 今回のアルゴリズムは、Wikip…

【Processing】線を描画するアルゴリズム

成果物 線状にサンプリングする時に、自力で計算しないといけないと思って作ってみました。ただ、コンピューターで線を引くには少し工夫が必要です。今までやったことがなかったのでやってみました。 仕組み 始点と終点の差計算しておき、xの位置に応じてyを…

【Processing】Perlinノイズ、Perlinノイズの渦、勾配、を使って画像を変形させる。

成果物 前回、Perlinノイズの勾配を使ってPerlinノイズの渦を作りました。この渦には一か所に集中しないという特性があり、このことが画像変形に役立つのではないと思って作ってみました。試していくと、他のベクトル場でも画像変形出来たので、紹介していき…

【Processing】Perlinノイズの勾配を90°回転させて、渦のパターンを作る

成果物 固定版 www.youtube.com Perlinノイズの勾配を前回作ったのですが、これを90°回せば、同じ軌道をずっと回り続けるのではないかということでやってみました。 変動版 www.youtube.com Perlinノイズを入力として与えるので、そのままのパラメーターが使…

【Processing】Midiデータを再生して、押されているキーを表示する。

成果物 www.youtube.com ProcessingでどうやってMidiファイルを扱うのかが長年の謎だったのですが、標準ライブラリを使ってMidiデータが扱えることがわかりました。再生速度などをいちいち考慮しないといけないと思っていたのですが、Sequencerを使って簡単…

【Processing】L Systemで空間充填曲線などを描く(Hilbert,Peano,Dragon,Levy,Gosper)

成果物 Peano曲線がL-Systemを使って描けることが分かったので、調べてみると非常に多くの空間充填曲線があることが分かったので実装してみました。今回は、線に色を付けることで、描画方法の特徴がわかるようにしました。単位正方形全体を含む曲線を空間充…

【Processing】プリズムの分光

成果物 どうして分光できるのかと思って調べてみたら、波長によって屈折率が変わるということがわかりました。狙った波長のデータが見つからなかったので、残念ながら物理的に正確なシュミレーションは出来ませんでしたが、近い見た目のものができました。 …

【Processing】フィボナッチ数列でらせんを描く

成果物 www.youtube.com 今回はフィボナッチ数列の辺の長さの正方形を敷き詰め、円弧でつなげてみました。 仕組み フィボナッチ数列は、1,1,2,3,5,8,13,21というようになっている数列です。どう並べるか悩んだのですが、素直に動かす方向ごとに、処理を変え…

【Processing】Sobel Operatorを実装する。

成果物 Sobel Operatorを実行すると、この様に輪郭が検出できます。予め決まった行列を掛け合わせるだけのシンプルな仕組みです。 仕組み 水平方向と垂直方向の輪郭に反応する行列を畳み込み演算し、それぞれの結果を二乗して足し合わせ平方根を求めると、So…

【Processing】Gaussian Blurを実装する

成果物 今までGaussian Blurを実装しようと思ったことはあってもやっていなかったので、やってみました。FFTを使って高速で実行する方法もあるらしいのですが、今は遠慮しておきます。 仕組み ある点からの距離結果が変わるように拡張したガウス関数を使って…

【Processing】破壊可能なばねを作る

成果物 www.youtube.com 橋を作るゲームを見て、壊れる動作が、どうやったら再現できるのか気になったので、破壊可能なばねを作ってみました。 仕組み 物体が壊れるのは力がかかった時というイメージがありますが、力を計算するのは難しいです。ただ、物体は…

【Processing】針を落として円周率を計算する。

成果物 www.youtube.com アイヨシキさんに、視覚化したらきれいな数学の問題はありますかと聞いたらビュンフォンの針を紹介していただいたので、さっそく実装してみました。ただ、精度が悪いのが難点です。 仕組み 感覚dの平行線を書き、長さがd/2の針を落と…

【Processing】Taylor展開とマクローリン展開を実装する。

成果物 www.youtube.com アイヨシキさんがTaylor展開を作ろうとしていたのを見て、お蔵入りになっていたマクローリン展開を思い出しました。お蔵入りになっていたマクローリン展開をちょっと改良すればTaylor展開を作れるのでは、ということで作ってみること…

【Processing】Differential Growthを実装する

成果物 www.youtube.com HoudiniでRelaxノードというものを使って、Differential Growthを実装するTutorialを見たのですが、Processingでも簡単に出来そうなのに一度も実装したことがなかったので、さっそく実装してみました。 仕組み Relaxは頂点をある大き…

【Processing】パーリンノイズを使ってアゲートを作る

成果物 www.youtube.com パーリンノイズを累算して何かアニメーションが作れないかなと思っていたら、Houdini TutorialでAgate Sectionというものが紹介されていたので、自分もアゲートを作ってみました。 仕組み パーリンノイズを円状にサンプリングして、…

【Processing】等積変形するゴムを作る。

成果物 www.youtube.com 自然界のゴムは全部等積変形するので、なかなか見慣れた動きに近いと思います。ゴムが引っ張られていく動きもよりリアルになった気がします。猫に見せると結構ついてくるかもしれませんね(笑) 仕組み 初めに長さと太さから体積を求…

【Processing】Hyperbolic Tilingを実装する。

成果物 Animation www.youtube.com Hyperbolic Plane上(Poincare Disk上)に、正多角形を敷き詰めることができました。正p角形をq個隣接するように並べる場合、平面上では(p-2)(q-2)=4になりますが、Hyperbolic Plane上に敷き詰める時は(p-2)(q-2)>4になり…

【Processing】円と、四角形の弾性衝突を計算できる物理エンジンを実装する。

成果物 www.youtube.com 数学友達が物理エンジンを作りたいって言ったので、さっそく調べてみることにしました。昔やろうとして挫折したのですが、今回はうまくいきました。 仕組み 物体が衝突したときに、速度を再計算し、次のフレームでぶつかってしまわな…