今までの話
今までProcessingやp5.jsで多角形を描く時は、
例えば六角形なら 360度 / n で角度を6つ指定し、
x = r * cos(θ), y = r * sin(θ) の式にその角度を当てはめ、その6つの点の座標をつなぎ合わせることで実装していました。

文章で描くとわかりにくいですね。コードで書いてみます。


See the Pen
Hexagon
by reona396 (@reona396)
on CodePen.



この方法を応用すると、星も描くことができます。
5つのとがったツノのある星を描きたい場合、前述の方法で10個の点の座標を算出し、
中心からの距離 r を長く→短く→長く→短く→…と指定していくことで実装していました。
こちらもコードで書いてみます。


See the Pen
Star
by reona396 (@reona396)
on CodePen.



もうちょっと詳しくは以下の記事をご覧ください。古い記事ですが頑張って書いたので…
Processingで多角形・星を描く : だらっと学習帳

問題点
従来手法は「指定角度の間の途中経路がxとyの式で表せない」という問題点があります。
六角形なら 360/6 = 60度きざみ、つまり0度、60度、120度、180度、240度、300度の時は上記のxとyの式で表すことができますが、
では30度の時は?133度の時は?0.123456789度の時は?…xとyの値がどこにあるかわからないのです。

この課題をクリアすると「オブジェクト(円など)を六角形のかたちの経路に沿って移動させる」「ハートなど、xとyの式で表せる他の図形とモーフィングさせる」ことができるようになります。

解決方法
n角形の式、探してみたらありました!あと星も。探せばあるものですね。資料として残してくださった方に感謝です。
Parametric equation of a regular pentagon – GeoGebra
正多角形とスピログラフの数式 | シキノート

上記の式をp5.jsのコードに入れ込んでみました(Processingでも同様にできると思います)。
六角形の場合はこんな感じです。


See the Pen
formula01
by reona396 (@reona396)
on CodePen.



星の場合はこんな感じです。


See the Pen
formula02
by reona396 (@reona396)
on CodePen.



この式があれば、上記のように0度以上360度未満の区間で任意のステップ(この場合は1度)で角度を決めてxとyの値を算出することができます。いい感じです!

作品例
上記の式を利用することでこのような作品をつくりました。