語言:Python
IDE:Python.IDE
需求
做出彩虹效果
顏色空間
RGB模型:光的三原色,共同決定色相
HSB/HSV模型:H色彩,S深淺,B飽和度,H決定色相
需要將HSB模型轉換為RGB模型
代碼示例:
#-*- coding:utf-8 –*-
from
turtle
import
*
def
HSB2RGB(hues):
?
hues
=
hues
*
3.59
#100轉成359范圍
?
rgb
=
[
0.0
,
0.0
,
0.0
]
?
i
=
int
(hues
/
60
)
%
6
?
f
=
hues
/
60
-
i
?
if
i
=
=
0
:
??
rgb[
0
]
=
1
; rgb[
1
]
=
f; rgb[
2
]
=
0
?
elif
i
=
=
1
:
??
rgb[
0
]
=
1
-
f; rgb[
1
]
=
1
; rgb[
2
]
=
0
?
elif
i
=
=
2
:
??
rgb[
0
]
=
0
; rgb[
1
]
=
1
; rgb[
2
]
=
f
?
elif
i
=
=
3
:
??
rgb[
0
]
=
0
; rgb[
1
]
=
1
-
f; rgb[
2
]
=
1
?
elif
i
=
=
4
:
??
rgb[
0
]
=
f; rgb[
1
]
=
0
; rgb[
2
]
=
1
?
elif
i
=
=
5
:
??
rgb[
0
]
=
1
; rgb[
1
]
=
0
; rgb[
2
]
=
1
-
f
?
return
rgb
def
rainbow():
?
hues
=
0.0
?
color(
1
,
0
,
0
)
?
#繪制彩虹
?
hideturtle()
?
speed(
100
)
?
pensize(
3
)
?
penup()
?
goto(
-
400
,
-
300
)
?
pendown()
?
right(
110
)
?
for
i
in
range
(
100
):
??
circle(
1000
)
??
right(
0.13
)
??
hues
=
hues
+
1
??
rgb
=
HSB2RGB(hues)
??
color(rgb[
0
],rgb[
1
],rgb[
2
])
?
penup()
def
main():
?
setup(
800
,
600
,
0
,
0
)
?
bgcolor((
0.8
,
0.8
,
1.0
))
?
tracer(
False
)
?
rainbow()
?
#輸出文字
?
tracer(
False
)
?
goto(
100
,
-
100
)
?
pendown()
?
color(
"red"
)
?
tracer(
True
)
?
mainloop()
if
__name__
=
=
"__main__"
:
?
main()
? | ? |