成果物
CodingTrainの物を改造して、nの数値をマウス座標でコントロールできるようにしました。いつかは自力で出来るようにしたい…
仕組み
球面上の位置情報(極座標)から、独自の式を使ってのその位置での、半径を求めるというプログラムです。数式はこちらに載っています。
詳しい解説は、CodingTrainに4回に分けて説明されています。
#1は、SuperShapeの楕円形バージョンの、SuperEllipse
#2は、2DでのSuperShape
#3は、球体の幾何学の解説
#4は、3DでのSuperShapeです。
再生リストでご覧ください。
コード
SuperShapeのリポジトリはこちらです。
今回のコードは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);