ねこでじ(Nekodigi)

Nekodigi’s diary

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

2020-06-01から1ヶ月間の記事一覧

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

【Processing】画像を円の中に反転する

成果物 www.youtube.com Houdini TutorialのHyperbolic TilingでMobiusInverseという名前の関数として定義されていたものが気になったので、調べてみたところ、Inversion in circleというものであることがわかりました。メビウス変換というものでもあるそう…

【Processing】白を透明度に変換して、白黒画像に塗り絵を行う。

成果物 仕組み 白との差を求め、その数値に従って、元画像と塗った色をブレンドすることで、塗り絵を実現してます。 コード github.com

【Houdini】0004 Reaction Diffusionの動作原理についての考察

成果物 www.youtube.com Reaction Diffusionと聞いて、Karl SimsさんのTutorialで紹介されていた数式を連想したのですが、実際は、ボリュームをぼかして引き算するというシンプルなものだったので、その動作原理について考察してみました。実験として、画像…

【Houdini】様々な成長アルゴリズムの実装

成果物 Reaction Diffusion (Gray Scott) www.youtube.com 今回は、チュートリアルを見ながら作った様々な成長アルゴリズムの仕組みと比較を行っていこうと思います。Remeshなど、いくつかのノードはバージョン変更がされているため、opaddなどを使ってバー…

【Arduino】 Youtubeを足で操作する。

成果物 www.youtube.com YoutubeのTutorialを見ているときに、分からないところですぐに止めることができずにとても困っていたので、足で操作するデバイスを作ってみました。ボタンを踏んでいる間だけ止まるので、とても便利です。ちなみに、Youtube以外の動…