モデルの作り方
エージェントの色をHSVで指定する
概要
エージェントの色をHSVで指定します。
方法
エージェントの表示色を変数によって動的に設定します。
- モデルツリー上のエージェントにcolor等の適当な変数を整数型で作成します。
- マップ出力設定画面で、表示色を動的に設定させたいエージェントを選択します
- エージェント表示色を「固定色」ではなく「変数指定」にし、先程設定した変数(color等)を選択します。
- エージェントルール上にHSVをRGB形式に変換するユーザ定義関数を作成します(ここでは関数名をHSVとします)
- エージェントルール上で表示色を表わす変数にHSV関数を用いて色を設定します
HSVユーザ定義関数
// ---------------------------------------- // HSV to RGB Convert // H: 0.0 - 360.0 degree // S: 0.0 - 1.0 // V: 0.0 - 1.0 Function HSV(c_h as Double, c_s as Double, c_v as Double) as Long { Dim f as Double Dim p as Double Dim q as Double Dim t as Double Dim hi as Double Dim r as Double Dim g as Double Dim b as Double hi = CInt(c_h / 60.0) mod 6 f = (c_h / 60.0) - hi p = c_v * (1 - c_s) q = c_v * (1 - (f * c_s)) t = c_v * (1 - (1 - f) * c_s) if (hi == 0) then r = c_v g = t b = p elseif (hi == 1) then r = q g = c_v b = p elseif (hi == 2) then r = p g = c_v b = t elseif (hi == 3) then r = p g = q b = c_v elseif (hi == 4) then r = t g = p b = c_v else r = c_v g = p b = q end if return RGB(CInt(r * 255) ,CInt(g * 255) ,CInt(b * 255)) }
HSVユーザ定義関数の利用例
Agt_Step{ My.Color = HSV((getCountStep() + (My.ID * 20)) mod 360,1.0, 1.0) }