色相環
タートルを使って色相環を描くいてみた。
色相環
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.