==== 基本コード ==== * Colorオブジェクトの作成 : API [[https://developer.rhino3d.com/api/RhinoScriptSyntax/#utility-CreateColor|CreateColor]] rs.CreateColor(r,g,b,a) * HSLカラーの使用 : API [[https://developer.rhino3d.com/api/RhinoScriptSyntax/#utility-ColorHLSToRGB|ColorHLSToRGB]] rs.ColorHLSToRGB( (160, 120, 0) ) ※ 変数の範囲についてはAPIに書かれていないのでよくわからないHの値は通常は0~360のはずだけど、試してみると0~180で指定するっぽい。LとSについても同様によくわからないけど0~360の範囲っぽい? ==== コンポーネント ==== 幾何形状を G へ、Color オブジェクトを M に接続する 複数ある場合は、それぞれを配列とする {{:set_color.png?direct|}} ==== サンプルコード1 ==== import rhinoscriptsyntax as rs import random def box2pt(p1, p2): pt0 = p1 pt1 = rs.coerce3dpoint([p2[0], p1[1], p1[2]]) pt2 = rs.coerce3dpoint([p2[0], p2[1], p1[2]]) pt3 = rs.coerce3dpoint([p1[0], p2[1], p1[2]]) pt4 = rs.coerce3dpoint([p1[0], p1[1], p2[2]]) pt5 = rs.coerce3dpoint([p2[0], p1[1], p2[2]]) pt6 = p2 pt7 = rs.coerce3dpoint([p1[0], p2[1], p2[2]]) return rs.AddBox([pt0, pt1, pt2, pt3, pt4, pt5, pt6, pt7]) N = 100 cubes = [] colors = [] for i in range(N): p0 = [random.randint(0,300) for i in range(3)] p1 = [random.randint(30,50) for i in range(3)] p2 = [p0[i] + p1[i] for i in range(3)] cubes.append(box2pt(p0, p2)) r = random.randint(0,255) g = random.randint(0,255) b = random.randint(0,255) a = random.randint(0,255) colors.append(rs.CreateColor(r,g,b,a)) ==== 実行結果1 ==== {{::color_cubes.png?direct|}} ==== サンプルコード2 ==== import rhinoscriptsyntax as rs import math N = 30 spheres = [] colors = [] for j in range(8): r = 2 * (j+3)+15 R = 40 * j for i in range(N): angle = 360 * i / N print(int(angle)) print(math.radians(angle)) x = R * math.cos(math.radians(angle)) y = R * math.sin(math.radians(angle)) spheres.append(rs.AddSphere((x,y,0), r)) colors.append(rs.ColorHLSToRGB( (int(angle/2), 280 - j * 20, 200) )) ==== 実行結果2 ==== {{::hsl_color.png?direct|}}