二重らせんDouble Helix
奥行きに応じて大きさと濃さを変えた点で二重らせんを描き、横に流れながら回転して見えるようにします。
どう計算しているか
- 画面を「本数」ぶんの段に分け、各段に「1本あたりの点の数」だけ x 方向へ点を並べます。
- 点ごとの角度は a = 2π(「巻き数」·k/n − 「1ループの回転数」·t + 段番号·「行ごとの時間差」) です。y = sin(a)·「太さ」を高さに使い、もう1本の鎖は a に π を足して反対側に置きます。
- cos(a) を奥行き z とみなし、z が大きい(手前の)点ほど半径を大きく、不透明にします。z の小さい順に並べ替えて描くので、手前の点が奥の点の上に重なります。
- 「横棒」をオンにすると、同じ x にある2本の鎖の点を半透明の線で結び、はしご状にします。
a = 2π(freq·k/n − cycles·t), y = amp·sin a, z = cos aループがつながる理由
時間の項は整数の「1ループの回転数」× t だけなので、1ループで角度がちょうど整数回転し、すべての点が元の位置と奥行きに戻ります。
調整できるパラメータ
形
| 本数 | 1 〜 12(初期値 3) |
|---|---|
| 1本あたりの点の数 | 8 〜 120(初期値 40) |
| 巻き数 | 0.5 〜 6(初期値 2) |
| 太さ | 20 〜 300(初期値 90) |
| 点の大きさ | 1 〜 30(初期値 9) |
| 横棒 | オン/オフ(初期値 オン) |
| 線幅 | 0.5 〜 8(初期値 2) |
動き
| 1ループの回転数 | 1 〜 4(初期値 1) |
|---|---|
| 行ごとの時間差 | 0 〜 1(初期値 0.25) |
同じ分類のシーン(線・波)
- 線・波Wave Lines横に引いた何本もの線を、正弦波や矩形波、ノイズで上下に揺らし、線ごとに少しずつ時間をずらして波を流します。
- ループするノイズNoise Field格子状に並べた線分や点、四角が、時間方向に閉じたノイズに従って回転・伸縮し、場全体がうねるように動きます。
- モアレMoiré同心円や縞を2組重ね、片方を少しずらしたり傾けたりすることで、干渉模様(モアレ)が流れるように動きます。
- 波打つ地形Wave Mesh斜め上から見下ろした格子の地形が、波紋・交差波・ノイズで上下にうねり、手前の面が奥の線を隠します。
- リボンTwisted Ribbon幅のある帯がねじれながら流れ、表と裏の色の切り替わりと陰影で立体感を出しています。
- 等高線の地図Contour Map時間とともに形を変えるノイズの地形を等高線で描き、地図のように5本ごとに太い線を入れます。
- ジグザグ・シェブロンChevron Flow山形に折れ曲がった色の縞が流れ続け、ジグザグの深さが呼吸するように変わります。
- オシロスコープOscilloscopeオシロスコープのビームがリサージュ図形や波形をなぞり、後ろに残光の尾を引いて光ります。
- 干渉縞・シェーダーGLInterference円を描いて周回する複数の波源から広がる波を重ね合わせ、渦を巻くように動く干渉縞を描きます。
- マーブル・シェーダーGLMarbling絵の具を水に浮かべて混ぜたようなマーブル模様を、ノイズで座標を何度もゆがめて作り、ゆっくり流します。
- ドメインワープ・シェーダーGLDomain Warpノイズで座標をゆがめ、そのゆがんだ座標でまたノイズを引くことで、煙や流体のような有機的な模様を作ります。