ねこでじ(Nekodigi)

Nekodigi’s diary

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

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

【Processing】RayCastでシンプルなRenderingをしてみた。

成果物 www.youtube.com 今回は、前回のRayCastのシステムをもとに、Rayが長ければ薄くRayが短ければ濃く表示するプログラムを作りました。長さも変更することで立体感を出しています。今回は、記念すべき100本目の記事です。これからも応援よろしくお願いし…

【Processing】PoseNetを使って鼻を認識し、鼻を流星にぶつけないようにするゲームを作った。

成果物 editor.p5js.org 顔出しNGなので動画が出せなくてすみません。 今回は、ml5.jsのPoseNetを使いました。意外と応答が早いです。一応全身の骨格もトラッキングできるので、目や腕をトラッキングすることもできます。 解説 今回は、こちらの動画をもとに…

【Processing】Rayを反射させる

成果物 www.youtube.com 今回は、前回のRayCastingさせたのものをさらに反射させるプログラムを作りました。 仕組み 前回のRayCastingのプログラムをもとにしました。 nekodigi.hatenablog.com 今回は、こちらの式を使って計算しています。障害物にぶつかっ…

【Processing】文字をRayCastしてみた

成果物 www.youtube.com 今回は、マウス座標から障害物にぶつかるまでビームを飛ばすRayCastをやってみました。可能であればRayTracingにも挑戦しようと思います。 仕組み Ray(ビーム)と障害物(線)の交点を求め、交点までビームを伸ばすという処理を行っ…

【Processing】ラグランジュ補間で点を通る曲線を求める

ラグランジュ補間 www.youtube.com 連立方程式での補間に比べて非常シンプルになっています。ただし、ルンゲ現象という発散が起こることがあり、点が多い場合には注意が必要です。今のところDCTでの補完が一番発散が少なかったです。 仕組み こちらの動画で…

【Processing】ボロノイ図のアニメーションを作った

成果物 www.youtube.com 今回のアニメーションでは、精度が犠牲になっている代わりに、より自由度の高い表現ができました。仕組みも非常にシンプルです。 仕組み Wikipediaにも書いてあるとうり、ボロノイ図の同じ区画では最も近い母点(ボロノイ図作成時に…

【Processing】三重Harmonographを作ってみた。

成果物 www.youtube.com 今回は、リサージュ曲線を二つ足し合わせたハーモノグラフを作ってみました。いくらでも足し合わせることができそうだったので三つを足し合わせてみたのがこちらです。 www.youtube.com 三重だと、やはり複雑な動きをします。 仕組み…

【Processing】N個の点を通る曲線を連立方程式で求める。

成果物 www.youtube.com 今回は、前回Pythonで作った連立方程式のプログラムをProcessingで作りました。前回はPythonのライブラリを使っていましたが、今回は、ガウスの消去法と使って同じことを再現しています。 概要 加減法を使っても解けますが、ガウスの…

【Processing】3Dホログラムの設計図を自動生成する。

概要 www.youtube.com カメラがうまく映らなくて申し訳ないです…今回は、前も作成した3Dホログラムの仕組みについて考えて、設計図を自動生成するプログラムを作成してみました。そして、設計図をもとに作成して無事に動作することを確認しました。 仕組み …

【Processing】InverseKinematicsで6軸ロボットアームを動かす

成果物 www.youtube.com 今回は、前回作ったロボットアームをInverseKinematicsで動かしてみました。6軸あるので、目標の座標と向きのとうりにアームを動かすことができます。 コード 今回は、行列の計算を書き起こしているので長くなっています。ロボットア…

【Processing】ForwardKinematicsでロボットアームを動かす

成果物 www.youtube.com 今回は、前回のForwardKinematicsの知識をもとに、ロボットアームを作成してみました。 仕組み 今回は、Processingのtranslateとrotateの機能を使って、原点を移動させながら描画していくようになっています。一から実装するともっと…

【Processing】正弦定理でカメラに映った2点から平面上の座標を計算する。

成果物 www.youtube.com 今回は、あらかじめわかっているaの長さと、カメラの画像と、カメラの向き、視野角から、視点を特定するプログラムを作りました。x,yとpredX,predYを比べるとおおよそ正確に予測できていることがわかります。スマホなどのセンサーが…

【Processing】コラッツの問題をもとにオリジナルのシークエンスを作った。

成果物 www.youtube.com コラッツの問題に似ているけど、また違った種類のシークエンスが出来ました。コラッツの問題では、偶数・奇数で動作を変えていましたが、今回は、三で割ったあまりをもとに動作を変えています。 仕組み 説明が難しい…4で割った場合も…

【Processing】コラッツの問題でツタを描く

成果物 www.youtube.com コラッツの問題はとてつもなく大きな数値でも成り立つことがコンピューターで実証されていて、コラッツの問題は正しいだろうとは言われていますが、証明はされていません。今回は、そんなコラッツ問題使ってツタの模様を作って、色と…

【Arduino】折り紙のバラを光らせる

成果物 www.youtube.com ArduinoでHSVを使えるようにして色を滑らかに繋げました。 作り方 まず、このバラは川崎ローズ www.asahipress.com の改造版である福島ローズです。 www.fukuyama-th.hiroshima-c.ed.jp 非常に難しいですが、有名なので身の回りにも…

【Processing】グモウスキー・ミラの写像

成果物 今回は、CによるカオスCGという本に載っていた、カオスを作ってみました。この特徴的な形から神話の鳥と呼ばれています。これ以外にも興味深いカオスがたくさん載っているので見てみてください。 解説 Wikipediaにはこのような数式がありますが {\dis…

【Processing】流体シュミレーションに障害物を追加、カルマン渦も作りたかったけど何かが違う。

成果物 www.youtube.com 説明がなかったので自力で取り組んでみました。それらしきものは出来ましたが、バグがあります。あくまで観賞用と言ったところです。 仕組み 流体シュミレーションについてはこちらをご覧ください。 nekodigi.hatenablog.com 今回は…

【OpenSCAD】SuperShapeを3Dプリントする。

成果物 今回は、Processingで作ったSuperShapeをOpenSCADを使ってSTLデータに変換し、3Dプリントしました。 nekodigi.hatenablog.com OpenSCADは文法がかなり変わっているのが特徴です。以前やったことはありましたが、なかなか難しかったです。3Dプリンター…

【Processing】Barnsley fernは意外な描き方でシダの葉のフラクタルを描いていた

成果物 www.youtube.com 有名なフラクタルのアルゴリズムのコードを見てみたのですが、予想外のコードだったので、どのように描いているのかを探ってみました。すると、根元から広がるように書いているのではなく、根元から葉一つ分ずつ先端に向かって書いて…

【Processing】Floyd-Steinberg Ditheringを使う

成果物 単純に近い色を当てはめていく方法を少し書き換えるだけで可能なので、速度が圧倒的に速く、1ピクセルを4マスで表す方法にも劣らないほどリアルな色が再現できています。 仕組み 単純に近い色を当てはめていくのですが、元画像の色と、当てはめた色の…

【Processing】波紋をシュミレーションする、非常にシンプルなアルゴリズム

成果物 www.youtube.com ずっと作ろうと思っていた波紋のシュミレーションを40行にも満たないコードで実現していたサイトがあったので、なぜなのか考えてみました。発見はありましたが、完全には分かりません。仕組みをわかりやすくするために、次元を減らし…

【Processing】SandPilesとは

成果物 www.youtube.com 仕組みはいかで説明しているとうりシンプルなのですが、様々な模様が生成されています。 仕組み あるセルに砂が4つ以上あると、周囲に隣接するマスに1つづつ砂を拡散していくだけというものです。例えばマス目が以下のようになってい…

【Processing】Binary Search Treeを視覚化する。

成果物 www.youtube.com Binary Search Treeのデータの追加と削除をアニメーションにしてみました。 親ノードが二つまでの子ノードを持つこちらのデータ構造は、データの追加は遅いですが、データが自動的に並べ替えられるので、大量のデータでも高速で読み…

【Processing】ForwardKinematicsとInverseKinematicsの仕組み

概要 ForwardKinematicsは、シンプルなロボットアームのような感じで、一つ一つの関節を手作業で設定します。しかし、InverseKinematicsは目標地点に対して、アームの場所を自動で計算してくれます。CGソフトのBlenderでよくお世話になりました。成果物を出…

【Processing】ドロネー三角形分割からボロノイ図を作る

成果物 www.youtube.com 今回のプログラムは予想の何倍も難しかったです。3日がかりです(最終的にさらにかかりました)。何とか、やり遂げました。 仕組み ボロノイ図は、用意した点データをドロネー三角形分割で三角形に分割して、垂直二等分線を引いていく…

【Processing】イスラム風星模様を描く

成果物 www.youtube.com こんな単純に見える模様にも、ベクトルの交差や、三角関数、内接円など高度な数学が使われています。かなり苦戦しました。 仕組み delta angleで模様をコントロールしています。具体的には。 タイルの各辺の中央から、deltaの量だけ…

【Processing】A*アルゴリズムを作成し、自動生成した迷路を解く。

成果物 シンプルなA*アルゴリズム www.youtube.com 二乗距離を使うと速かったです。 迷路を解く www.youtube.com 今回は、A*アルゴリズムと迷路生成アルゴリズムを組み合わせて、自動で作った迷路をまた自動で解くプログラムを作りました。どうやら迷路生成…

【Processing】均一なノイズをつくるPoison-disc Samplingをやってみた

成果物 www.youtube.com このアルゴリズムは、何をするのか謎だったのですが、Blue Noiseという、均一なノイズを生成するアルゴリズムのようです。他のアルゴリズムは、動作が遅いそうで、早いということがこのアルゴリズムのメリットのようです。意外と苦戦…

【Processing】Toxicで布のアニメーション

成果物 www.youtube.com 布の硬さ、張り?をリアルタイムで変えられるようにしてみました。最近地味な改造しかできていないので頑張りたい… 仕組み 無数の点を、ばねで繋ぐ事によって、布を実現しています。詳しい解説はこちらをご覧ください。 www.youtube.c…

【Processing】トゲトゲの球体SuperShape作ってみた

成果物 www.youtube.com CodingTrainの物を改造して、nの数値をマウス座標でコントロールできるようにしました。いつかは自力で出来るようにしたい… 仕組み 球面上の位置情報(極座標)から、独自の式を使ってのその位置での、半径を求めるというプログラム…