ねこでじ(Nekodigi)

Nekodigi’s diary

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

Processing

【Processing】120 cellを作る

成果物 www.youtube.com あまりに美しかったので驚きました。 仕組み 頂点はこのようになっています。Φは黄金比です。また、辺の長さは2/(Φ*Φ)です。 permutations of (0, 0, ±2, ±2) (±1, ±1, ±1, ±√5) (±φ−2, ±φ, ±φ, ±φ) (±φ−1, ±φ−1, ±φ−1, ±φ2) and all…

【Processing】600 cellを作る

成果物 www.youtube.com 120 cellを先に作ったのですが、600 cellより圧倒的に美しかったので後で説明します。 仕組み 頂点はこのようになっています。Φは黄金比です。また、辺の長さは2/Φです。 The 96 even permutations of (+-phi,+-1,+-1/phi,0). The 8 …

【Processing】正十二面体を頂点情報だけから作る。

成果物 120 cell, 600 cellを作るにあたって、辺、面の情報を手動で登録するのは不可能に近いので、頂点情報と辺の長さから辺を自動生成するようにしました。 仕組み 頂点はこのようになっています。Φは黄金比です。また、辺の長さは2/Φです。 絶対値符号の…

【Processing】穴の開いた毛細血管のようなパターンをConstrained Delaunay図の最短経路を大量に結んで作る。

成果物 www.youtube.com ようやくConstrained DelaunayをA Starアルゴリズムで解くことが出来ました。これは、かなり重要なアルゴリズムで、ゲームのAIもこれと似た仕組みを使って障害物を避けながら移動しています。 仕組み 前回Constrained Delaunayのアル…

【Processing】Constrained DelaunayからVoronoi図を生成してみた。

成果物 Constrained Delaunayはそのままだと周囲との接続関係の情報を持たないので、何とか何とか登録して試してみました。面を張るところまではいきませんでしたが、線は生成することができました。おおよそConstraintに直交するようにVoronoi図ができてい…

【Processing】Convex Hull同士のMinkowski和を計算する。

成果物 左上の物体Aを、真ん中の物体Bの周りで一周させ通った部分を物体Bに追加したのがMinkowski和です。これを使うと、危険物からXm以内の危険エリアを計算するといったことができます。また、Constrained Delaunayと組み合わせると、ある物体のXm以内に近…

【Processing】Constrained Delaunayを使って、文字でくりぬかれたVoronoi図を作る。

成果物 今回は、前回のConstrained Delaunayを発展させて文字で行っていました。前回は一つの輪で切り取っていましたが、文字では多数の輪があり、切り取る輪、残す輪があるので、思った以上に難解でした。 最終的にPolygon in Polygonを使った後処理で解決…

【Processing】Delaunay図を自在に切り取る!Constrained Delaunayを実装する。

成果物 基本的なDelaunay図の最終形態とも言うべきConstrained Delaunayがとうとう完成しました!これを使うと、自由自在に穴をあけたり、線を入れたりすることができます。仕組み自体はシンプルですが、接続情報の変更が非常に複雑で、難しかったです。改良…

【Processing】Worley Noiseに色を付けて、渋くてきれいなVoronoi図を作る。

成果物 普通のVoronoi図を点からの距離が遠いほど黒くなるようにするだけで、人工的な雰囲気が緩和され、味が生まれました。コード自体も非常にシンプルです。 Worley Noiseについて Worley noise - Wikipedia コード Worley Voronoiという名前で追加してい…

【Processing】遊星ギアを作ってみる。

成果物 アンパ…ではありません。簡略化のため歯をなくしたので遊星摩擦車的なものになってしまいましたが、これでも、動作する様子ははっきりわかります。 仕組み ja.wikipedia.org コード Planetary Gearという名前で追加しています。 github.com

【Processing】円で形を削り取り、波や浸食された砂岩のような表現を作る。

成果物 The Waveや滑らかな浸食された氷をみると、まるで球たいで削ったような形をしていたので作ってみました。背景色と同じ円を描いて削られたように見せるというシンプルな仕組みですが、雰囲気は出ている気がします。 コード Circle Erodeという名前で追…

【Processing】Lab色空間からRGBに変換したかった(試作)

成果物 単純に色飛びしたのか、それともミスなのかわからないのですが、違和感があります。まだまだ分からないことが多いので、手掛かりが見つかったら修正していきたいと思います。修正できる方がいたら報告お願いします。 仕組み こちらのサイトのCIELabの…

【Processing】JavaFXを使ったPerspective Transform

成果物 前回、連立方程式を解いてPerspective Transformを行ったのですが、Division by Zero問題で誤差を増大させざるを得なかったので、JavaFXでもやってみました。 nekodigi.hatenablog.com 仕組み JavaFXのJarライブラリが見つからなかったので、Keystone…

【Processing】一度にたくさん書けるペンを作ってみた。

成果物 試験前にひたすら原子核のKLMN(アルファベット順です)を書き続けていた人がいたので、そんな退屈なことはプログラミングにやらせようということで作ってみました。ただ複製するだけでは面白くないので、ペンタブレットのライブラリを使って筆圧も考慮…

【Processing】黄金角に沿って並んだ円形のディスプレイを作る。

成果物 円形のディスプレイでも、通常格子型にLEDが配置されていますが、黄金角を使って配置してみると面白いのではということでやってみました。今回は、画像上の任意の点の情報が欲しいということで久しぶりにBicubic補間を使いました。 仕組み こちらの記…

【Processing】矢絣の模様を作る

成果物 模様シリーズとして矢絣も作ってみました。Processingでできそうなものは一通り済ませてしまったので、実装すると面白そうな模様があればリクエストお願いします。 仕組み 矢絣は実は長方形とひし形の組み合わせでできています。色を交互に並べながら…

【Processing】塊検出(Connected-component labeling)を実装する

成果物 二値化されたデータを塊ごとに分類してくれるプログラムです。物体の個数を数えたり、物体が繋がっているかを調べたりするときに便利です。 仕組み 画像の端から順に検査していき、trueのマスでラベルが張られていない場合は現在のラベルを設定し(ラ…

【Processing】イラストを動かす(あご)

成果物 今回は、試しにかえる仙人を動かしてみようということで、ボールを食べるアニメーションを作ってみました。回転の原点を疑似的に変更しているのがポイントです。 仕組み Processingにはある点を中心に回転させるという機能はないのですが、回転の中心…

【Processing】あるxでのベジェ曲線のyを求める。

成果物 今回は、総集編として、あるxでのベジェ曲線のyを求めてみました。ついでに、直線にも対応させておきました。vertex、quadraticVertex、bezierVertexの様に曲線を指定することができます。 仕組み あるxでの二次、三次ベジェ曲線のyについてはこちら…

【Processing】文字が繋がって落ちていくタイピングゲームを作る。

成果物 www.youtube.com 今回もBox2Dを使ったタイピングゲームになります。以前はただ落ちるだけでしたが、今回は、Jointを使ってつなげてみました。ただそれだけなのですが、躍動感が生まれました。 仕組み 私の知る限り、Box2Dでは物体のSTATIC,DYNAMICを…

【Processing】あるxでの三次ベジェ曲線のyを求める。(ニュートン法)

成果物 今回は、前回の二次ベジェ曲線に続き、あるxでの3次ベジェ曲線のyを求めてみました。三次方程式を使った方法もあるのですが、うまくいかなかったうえ、三角関数などを多く使用していることが原因で重かったのでニュートン法を使用しました。 仕組み t…

【Processing】キーボードを使って特定の場所をマウスクリックする。

成果物 世界史一問一答をAndroidエミュレータで動かしていたのですが、当然ながらショートカットなどないです。どうせ4択なのだから、キーボードで操作できたらいいなと思って作ってみました。0~9いずれかのキーとLeft Shift同時押しで、任意の場所を設定で…

【Processing】複雑に変形するバイオハザードマークを作る。

成果物 www.youtube.com Biohazard Markを作ってみました。作図する際に8つの変数があるので、それを動かしたら面白いのではということで作ってみました。 仕組み こちらのサイトで書き方が紹介されているので、それをもとに作っています。 99percentinvisib…

【Processing】三つ巴の家紋を作る

成果物 今回は、三つ巴を作ってみました。表示順序などの問題もあり、なかなか思ったように行かなくて苦労しました。 仕組み 三つ巴は三つの大きさの円、三つの線で構成されています。とがった部分は円弧を描きその上から、抜けた部分を背景色と同じ色で塗り…

【Processing】立体的な文字を作る(試作)

成果物 前回、最短の辺とその角度を求めるプログラムを作ったので、角度で定義される鏡と組み合わせて立体的なテキストを作ってみました。まだまだ、文字内部の処理がうまくいかない、線がうまく検出されないなどの不具合があるので試作としました。 仕組み …

【Processing】最短の辺とその角度を求める。

成果物 文字を立体的に表現するために必要だったので作りました。綺麗に二等分線が引かれているのがわかります。一見簡単そうに見えるのですが、実は非常に大変でした。 仕組み 辺からの距離を求めるには、辺の横にある時は法線方向への距離、それ以外では近…

【Processing】青海波を作る。

成果物 今回は、青海波です。今までは横向き六角形配置しかやったことがなかったのですが、今回は、縦向きだったので非常に勉強になりました。そこまで出来れば後は同心円を並べるだけです。 コード Hemp leafという名前で追加しています。 github.com

【Processing】麻の葉模様を作る。

成果物 今回は、模様シリーズとして麻の葉模様を作ってみました。六角形にも三角形にも見える不思議な模様でしたが、今回は、三角形を一単位として並べています。 コード Hemp leafという名前で追加しています。 github.com

【Processing】六角形の七宝模様を作る。

成果物 六角形(三角形)にすることでぐっと緻密になりました。六角形を描く時にもよく使います。 仕組み 六角形になると並べるのが急に大変になるので、少しでも楽にするために、列ごとに並べるようにしました。 普通の七宝模様についてはこちらをご覧くだ…

【Processing】七宝模様を作る。

成果物 ネタもなくなってきたのでしばらく模様シリーズを続ける予定です。ということで、今回は、七宝模様を作ってみました。 仕組み 四分の一の円弧を二つセットにして、一パーツを作り、それを並べています。ちなみに、P3Dを使うと境目が目立たなくなるの…