色相環

0

タートルを使って色相環を描くいてみた。

色相環
https://bitarrow.eplang.jp/bitarrow/fs/pub/f4e9c680/Circle_0.html
リング状色相環
https://bitarrow.eplang.jp/bitarrow/fs/pub/f4e9c680/Circle_1.html

ドリトルではHSVで色の指定ができないので、RGBの値を変換している。

RGBとHSVの相互変換
http://www.petitmonte.com/javascript/rgb_hsv_convert.html
http://www.peko-step.com/tool/hsvrgb.html

// 色相環
pen=turtle! create hide.
n=0.
timer! create 0.1 interval (360) times[
 [全部! (n>=0)(n<60) 本当]! then [r=255. g=(n/60)*255. b=0.] execute.
 [全部! (n>=60)(n<120) 本当]! then [r=(120-n)/60*255. g=255. b=0.] execute.
 [全部! (n>=120)(n<180) 本当]! then [r=0. g=255. b=(n-120)/60*255.] execute.
 [全部! (n>=180)(n<240) 本当]! then [r=0. g=(240-n)/60*255. b=255.] execute.
 [全部! (n>=240)(n<300) 本当]! then [r=(n-240)/60*255. g=0. b=255.] execute.
 [全部! (n>=300)(n<360) 本当]! then [r=255. g=0. b=(360-n)/60*255.] execute.
 pen! (3) linewidth
 (color! (r)(g)(b) create) linecolor (200) forward
 movetocenter 1 rightturn.
 n=n+1.
] execute.

// リング状色相環
screen! (黒) paint.
pen=turtle! create hide.
n=0.
timer! create 0.1 interval (360) times[
 [全部! (n>=0)(n<60) 本当]! then [r=255. g=(n/60)*255. b=0.] execute.
 [全部! (n>=60)(n<120) 本当]! then [r=(120-n)/60*255. g=255. b=0.] execute.
 [全部! (n>=120)(n<180) 本当]! then [r=0. g=255. b=(n-120)/60*255.] execute.
 [全部! (n>=180)(n<240) 本当]! then [r=0. g=(240-n)/60*255. b=255.] execute.
 [全部! (n>=240)(n<300) 本当]! then [r=(n-240)/60*255. g=0. b=255.] execute.
 [全部! (n>=300)(n<360) 本当]! then [r=255. g=0. b=(360-n)/60*255.] execute.
 pen! (4) linewidth
 (color! (r)(g)(b) create) linecolor (200) forward
 movetocenter (5) linewidth
 (黒) linecolor (160) forward
 movetocenter 1 rightturn.
 n=n+1.
] execute.

Default