ねこでじ(Nekodigi)

Nekodigi’s diary

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

Processing

【Processing】重力で引きあっているのにぶつからない三つの物体(三体問題)

成果物 www.youtube.com 8の字を書いて動いているのが特徴です。ありえないほど綺麗な軌道をしているので、本当に動くのか気になって実装してみました。今回は、定数を入力して見ただけに過ぎないので、時間があれば論文を読んで詳しい仕組みについて知りた…

【Processing】三点を通る円を求める

成果物 www.youtube.com 三点を入力すると、それを通る円の方程式を求めてくれます。そして、その方程式から、円の中心と半径を求め、Processingに表示しています。 仕組み コード Circle passing through 3 pointsという名前で追加しています。 github.com

【Processing】ばねのように元の形に戻ろうとする木を作る

成果物 www.youtube.com 形状記憶するばねのコードを作ったので、木のフラクタルに適応してみました。 仕組み 形状記憶するばね nekodigi.hatenablog.com 木のフラクタル nekodigi.hatenablog.com 形状記憶するばねはNodeとそれをつなぐSpringがあれば使うこ…

【Processing】形状記憶するばねを作る

成果物 www.youtube.com 動画では滑らかに動いていますが、速度の減衰などを変えるとばねのような動きをすることもできます。 仕組み 相対的(親ノード基準の座標)な初期位置をはじめに記録しておき、変形したときに、最初の位置関係に少しずつ移動していく…

【Processing】コロナウイルスの感染者を国の大きさで表す

成果物 www.youtube.com 今回は、コロナウイルスの感染者数を国の大きさで表してみました。中央に集まるグラフと組み合わせて大きいものが真ん中に行くようにしました。 仕組み 国の画像 https://github.com/djaiss/mapsicon コロナウイルスデータ https://g…

【Processing】中央に集まるグラフを作る

成果物 www.youtube.com 今回は、中央に大きいものが集まるグラフを作ってみました。ただ少し欠陥があり、時間が経つと混ざってしまうので、今後改良していきたいです。 仕組み 丸に真ん中に集まる向きの力と、ぶつからないように回避する力を加えています。…

【Processing】画像を極座標とイージングを使って変形させる

成果物 www.youtube.com 今回は、顔をゆがませるような円形の変形で極座標の考え方が使えそうだと思ったので、早速やってみました。 仕組み まず、直交座標を、極座標に変換します。今回は、そのr成分をEaseOutCubic使って加工してみました。ただ、画像を変…

【数学友達にプログラミングを教える】#1-Processing入門編

目標 左の二つのコードをもとに、右のカラフルなSin波のグラフを作る。できれば、アレンジしてグラフなど表示してみる。 目標 教えたこと 目標の手掛かり コード 教えたこと Processingが描画系に特化していることや、記述がコンパクトにできることを教える…

【Processing】カルマン渦をシュミレーションする。

成果物 濃度表示 www.youtube.com 粒子を使った速度場の視覚化 www.youtube.com 今回は、Cのプログラムを参考にしてカルマン渦のシュミレーションを行ってみました。前回作ったシュミレーションはゲーム用の目的で考案されたアルゴリズムで、直感的なアプロ…

【Processing】パーリンノイズを多角形状に配置し、干渉させてみる

成果物 www.youtube.com 今回は、見やすくするため、数値を割ったあまりを表示しています。特に、三角形の場合は、計算コストもある程度抑えられ、違和感を感じずにダイナミックに変化するノイズを作り出してくれます。また、いくつもの対称性があるのでその…

【Processing】回転を加えるアトラクタを作ってみる。

成果物 www.youtube.com 今回は、物体を引き寄せるアトラクタに回転加える動作を加えてみました。なかなかきれいな見た目に仕上がったかと思いますが。多少違和感があるので今後改良したいです。 仕組み アトラクタは、点に近づけるような力を加えますが。近…

【Processing】シンプルなBox Softbody

成果物 www.youtube.com 前回は円のSoftbodyを作ったのですが、今回は、箱型のSoftbodyを作ってみました。さすがに箱では地味なので、画像を変形させてみました。 仕組み 基本的にはばねを弾ませているような感じです。フックの法則に従って縮んだ分に比例し…

【Processing】円を集団発生させ、膨張させることで、さまざまな平面の埋め尽くし方ができるようにする。

成果物 www.youtube.com 以前、画像を平面を埋め尽くす円で表しているアートをみて、狙い通りの埋め尽くし方を実現するにはどうすればいいのかと思ったので、私なりに方法を考えてみました。 仕組み 普通平面を円で埋め尽くすには、毎フレーム円を追加し、ほ…

【Processing】球面の画像をAzimuthal Equidistant Projection(正距方位図法)で投影する

成果物 ワイヤーフレーム www.youtube.com 画像 www.youtube.com 仕組み こちらの式を使って座標を変換していきます。 画像を投影するときは、画面上の位置から逆変換して画像上の位置を求め、Bicubic補間で補完します。 nekodigi.hatenablog.com こちらのサ…

【Processing】球面の画像をMollweide Projection(モルワイデ図法)で投影する

成果物 ワイヤーフレーム www.youtube.com ちょっとレトロな雰囲気の地図でよく見かけるあの形です。某飲料シリーズのロゴでも使われていた気がします。 画像 www.youtube.com 前回のサンソン図法と少し似ていますが、端がとがっていないのが特徴です。 仕組…

【Processing】球面の画像をSinusoidal Projection(サンソン図法)で投影する。

成果物 ワイヤーフレーム版 www.youtube.com 画像版 www.youtube.com 仕組み 以下の式を使って座標変換を行います。 画像を投影するときは、画面上の位置から逆変換して画像上の位置を求め、Bicubic補間で補完します。 nekodigi.hatenablog.com こちらのサイ…

【Processing×Blender】Tesseractを3Dプリントする

成果物 ダウンロード www.thingiverse.com 仕組み まず、前回の記事をもとにTesseractを作成します。 nekodigi.hatenablog.com そして、前回の始点と終点を指定したカプセルを使って、辺を置き換えます。 nekodigi.hatenablog.com カプセルの頂点と面データ…

【Processing】始点と終点を指定したカプセルを表示する。

成果物 www.youtube.com BlenderのWireframeを使ってTesseractを表示しようと思ったのですが、変な交差が起きてしまったりして使えませんでした。それなら、カプセルで辺を置き換えようということで今回作ってみることにしました。 仕組み カプセル 球の上側…

【Processing】着地地点から発射角度を求める(異なる高さ)

成果物 www.youtube.com 実は異なる高さになると、式変形でいくつか三角関数の公式を使うようになり、難易度がぐっと上がります。高専で楽しい楽しいワークたちが配られたのでしばらくそちらに専念します。数学多めで本当に助かります。 仕組み こちらの数式…

【Processing】着地地点から発射角度を求める(同じ高さ)

成果物 www.youtube.com 着地地点から発射角度を求めることが出来るのかなと思って調べたところ見つかったので作ってみました。導く過程は長いですが、本体は1行で記述できます。異なる高さに対応させると、どんな高さでも対応できるので、次回やっていこう…

【Processing】Lloyds Algorithmを使って、平面と球面上で、泡が広がっていくようなアニメーションを作る。

成果物 平面 www.youtube.com Lloyds algorithmは、繰り返していくと、均一に広がっていくアルゴリズムでVoronoi Iteration / Relaxationともいわれます。重心を求めることができればよいので、簡単に球面にも拡張できます。 球面 www.youtube.com 仕組み ボ…

【Processing×Blender】Voronoi図とDelauany Triangulationのコースターを作る

成果物 ファイル数が15を超え、もはやProcessingが踏み込んではいけない領域に達しようとしていますw。今回は、Voronoi図の生成と、多角形のオフセットを行い、CSVに似た形式に変換して記録し、それをBlenderスクリプト読み込むという仕組みになっています…

【Processing】多角形のオフセット

成果物 多角形の外側に赤い多角形が生成されています。オフセットした線が自己交差する場合の処理は出来ませんが、大半の場合は対応できると思います。 仕組み 頂点に接する二つ辺のの法線の和を正規化し移動方向を求め、オフセットの量÷(1+二つの法線の内…

【Processing】GrainerHormannアルゴリズムを使ってPolygon Clipping

成果物 前回Polygon Clippingを自力でやってみたのですが、あまりうまくいかなかったので、調べてみたところUnityでGrainerHormannアルゴリズムてPolygon Clippingを実装しているサイトがあったので、早速Processingで実装してみました。 仕組み 多角形A,Bの…

【Processing】多角形の交差

成果物 今回は、少しづつ進めていた多角形の交差の報告です。今回は、独自のアルゴリズムを使って処理をしています。実際にやってみるとトラブル続きでやっと単純な図形ではそこそこ結果が出せるようになりました。ただ、まだバグが多いので改良が必要です。…

【Processing】かくかくの直線をベジェ曲線で少しづつなぞっていく

成果物 www.youtube.com ちょっと思っていたもの違いましたが、一応完成しました。 仕組み ポイントと、ポイントが載っている辺の次の辺上のポイントを繋いでいくことで描いています。おそらく、ソースコードを見ていただいた方がわかりやすいと思います。 …

【Processing】Diamond-Square AlgorithmでPlasma Fractalを作る

成果物 Plasma Fractalはフラクタルの一種で、拡大しても同じようなパターンが見えます。生成するさいも、再帰的に計算していきます。プラズマや宇宙背景放射のように見えます。 仕組み まず、2のn乗+1の正方形のマスを作ります。そして、四つの角にランダム…

【Processing】XYZ色空間とRGB色空間の変換。烏帽子型のあのグラフを表示する!

成果物 XYZ色空間は知らなくても、この図を見たことがある方は多いのではないでしょうか。これは、XYZ色空間を二次元(xyY)に変換したものです。三角形がCIERGBの範囲で、多くの色の一部しか表せていないことがわかります。 ちなみに、XYZをただ入力すればこ…

【Processing】球体のVoronoi図を作る

成果物 www.youtube.com 前回の3DVoronoi図に比べて、かなりきれいに仕上がりました。実は2DVoronoi図に近い仕組みで動いていて、意外に簡単な処理になっています。骨組みだけでもきれい。 仕組み 実は、球体のDelaunay TriangulationはConvex hullと全く同…

【Processing】Biham Middleton Levine Traffic Modelで、葉っぱにも見える不思議なパターンを作る

成果物 www.youtube.com 砂が流れ落ちるようなアルゴリズムになっていて、きれいなマツの葉のような模様を作りだすことができます。4Kの高解像度のシュミレーション結果はこちらです。 仕組み 進行方向にブロックがないとき、赤ブロックは右に動き、青ブロッ…