モデルの作り方
エージェントの色を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)
}
