Circleノードを作成し下記のように設定します。
attributeWrangleに接続し、下記を記述します。
変数uを作成しポイント総数を現在処理中のポイント番号で割って代入。
float u = float (@ptnum) / @numpt;
ポイント位置はuにradiusチャンネルを乗算した値に乗算して代入。
@P *= u * ch('radius');
ポイントのYの値は1行目で求めた値にheightチャンネルの結果を乗算した値。
@P.y = u * ch('height');
swirlを作成し、その結果をswirlsに代入
float swirls = ch('swirls');
「Create Spare Paramter」ボタンをクリックして、radius/height/swirlの3チャンネルを作成
swirlsパラメーターを右クリックして、Copy Paramterを選択
CirlceノードのArc Anglesのvパラメーターを右クリックし、Paste Relative Referencesを選択し、Enterキーで確定
swirlsで渦巻度、radiusで半径、heightで高さを指定すれば完成
Swirlは360で一巻きするので、大きな数値を入力するとわかりやすい。
さらに半径をランプでコントロールする。
2行目を下記のように変更
@P *= chramp('shape',u) * ch('radius');
chrampは特定の位置のランプパラメーターを返す。
これで、Create Spare Paramterをクリックするとランプパラメーターが追加。
shapeランプを調整し、スパイラル半径を制御可能。