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

✅ 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