STUDIO TAMA

Rhinoceros & Grasshopper Utilities

© 2025 STUDIO TAMA

Day 7

列ごとに位相をずらしたSin波で球体グリッドを動かす

#grid#sphere#wave#phase
列ごとに位相をずらしたSin波で球体グリッドを動かす

✅ Inputs

- `count_x`: int – X方向のグリッド数(列数)
- `count_y`: int – Y方向のグリッド数(行数)
- `spacing`: float – 球体間の距離
- `amplitude`: float – Sin波の振幅(Z方向への最大オフセット)
- `radian`: float – Y方向全体に適用される波の角度(例:`2π`で1波)
- `phase_offset`: float – 各列ごとに加算する位相シフト量(ラジアン)
- `sphere_radius`: float – 各球体の半径

✅ Outputs

- `results`: list of `Sphere` – Z方向にSin波形状を持ち、列ごとに位相の異なる球体群

✅ Code

import Rhino.Geometry as rg
import math

spheres = []

for i in range(count_x):
    for j in range(count_y):
        x = i * spacing
        y = j * spacing

        t = float(j) / (count_y - 1)
        base_angle = t * radian

        angle = base_angle + i * phase_offset
        z_offset = math.sin(angle) * amplitude

        center = rg.Point3d(x, y, z_offset)
        spheres.append(rg.Sphere(center, sphere_radius))

results = spheres

ライセンス・利用規約

項目可否説明
自身のプロジェクトへの組み込み個人・商用問わず、スクリプトや作品の一部として自由に使えます。
コードの改変・学習利用自身の学習や、目的に合わせたカスタマイズは大歓迎です。
SNSへのシェア・紹介作品の画像やURLのシェアは許可不要です。ぜひご紹介ください!
再配布・転載×コードやファイルを丸ごと自身のサイト等でコンテンツとして公開しないでください。
素材・プログラムとしての転売×本サイトの内容をそのまま、あるいは微調整のみで有料販売しないでください。
著作権表示・リンク任意必須ではありませんが、引用元としてリンクを貼っていただけると励みになります。
Day Day 7 - 列ごとに位相をずらしたSin波で球体グリッドを動かす | Grasshopper Python 入門チュートリアル | STUDIO TAMA - Rhinoceros & Grasshopper Utilities