ねこでじ(Nekodigi)

Nekodigi’s diary

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

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

成果物

www.youtube.com

CodingTrainの物を改造して、nの数値をマウス座標でコントロールできるようにしました。いつかは自力で出来るようにしたい…

仕組み

球面上の位置情報(極座標)から、独自の式を使ってのその位置での、半径を求めるというプログラムです。数式はこちらに載っています。

paulbourke.net

詳しい解説は、CodingTrainに4回に分けて説明されています。

#1は、SuperShapeの楕円形バージョンの、SuperEllipse

#2は、2DでのSuperShape

#3は、球体の幾何学の解説

#4は、3DでのSuperShapeです。

再生リストでご覧ください。

www.youtube.com

 コード

SuperShapeのリポジトリはこちらです。

github.com

今回のコードはCodingTrainで紹介されているコードのn1,n2,n3を次のように設定すると作り出すことができます。n1は、すぼみ、n2,n3は淵のとがり具合に影響している可能性が高いです。工夫すれば円柱や、三角柱も作れるようです。

n1=map(mouseX, 0, width, 0, 2);
n2=map(mouseY, 0, height, 0, 2);
n3=map(mouseY, 0, height, 0, 2);