) q1 |+ F4 c% b" G" m" ]: }
$ ^9 o7 n" ?* r: M/ k/ [
# v' i8 ?6 W' e+ M; \3 Y9 ? $ J0 U- N0 V, b5 {/ H/ Y
01:39 n# u( d: P. E; @2 Z" S& u
?8 Z1 U: E0 t! w
/ _, I9 ~0 F5 E7 [4 N9 |- }9 J5 L 5 C: i2 J1 t3 ]2 o N
& M6 q: h( q$ S* _/ u
用python画漂亮的类似七巧板图形,源码解释如下: $ r* |! N8 h' E9 V( N _
& R3 X/ X1 \( [' i1 ]
* P- x8 F- N0 C* V& U8 Q P# q 用python画漂亮的类似七巧板图形
" ^+ D: a$ K4 B @: z7 ~ 0 G! ^ S, I' n* ^
7 \1 k% y2 `2 ?* s! Z* Y: v import turtle as tu 调用turtle库
# K% Y7 f1 i3 N1 R' `+ d 8 k$ F3 R! F( s3 r7 {9 c
+ I! X+ M( F/ q- p( r
import colorsys 调用颜色 % i( ~# y" g: G" w' H% h- @
1 M8 d' @# |) V# i
9 y& m% ]# E) j1 ^$ S+ ]' [
tu.Screen().bgcolor("black") 设置背景颜色 P' [- I0 P8 e+ \# K
d8 x' H4 a0 K& V
# W! a+ {6 k- Y$ g t=tu.Turtle() 设置t作为运行主体
$ n4 i; m9 Z" I+ D 5 `" x9 {/ ]: J1 c+ f
; A+ R& U; r, X! }
h=0.3 设置色相 , V+ D' |7 Z! e
8 ~8 g- `) ?- C$ I 9 j& ^7 {- Z# U5 l, |1 G% L
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 ) r0 W- K& }% [( \: m1 L
# I) V" a- Y1 i8 X# g% L% ^
! @/ Q2 }; h; c( _& Y/ [; c6 q4 L0 s t.seth(ang) 定义转向角度 4 `8 F* c! B, @" Q, q- b
* w9 H/ W; E7 {
3 |5 g, h6 L0 o1 o' _; @2 E t.fillcolor(cl) 填充颜色 * e1 Y- F h: H; \2 G1 |1 X6 I7 I
7 N% Z; b1 s" r! _, Q) f+ b
6 L6 F) l @: F% c t.begin_fill() 开始填充 1 d# b7 H1 \4 J' P" f5 Z
3 L$ P2 x$ t3 I1 Z
# j! Q; ^% b% y1 K( ?! o t.forward(len) 向前走len个长度
! m! Q5 F1 B; ?2 h+ {" e/ B
& ^/ z: D* Z3 j
- x& j/ z4 m6 z$ `: ?. H D$ I, z% k t.seth(60+ang) 旋转60+ang个度数 - H. p8 R0 Y, {" ]) b4 v
8 H0 \3 m8 e; V2 V: |- o
+ u6 l% Z1 b6 U t.forward((73/200)*len) 向前走这个长度
4 P0 d+ h4 P4 g8 P ; M5 `. j6 {% x& [! a
2 Z$ d6 [9 |0 X0 ^' J t.seth(150+ang) 旋转这个角度 4 y s1 E! ]( W$ D2 _; j
! I$ p4 k+ J, O: C. K
3 U( r, B: z2 U4 l
t.forward((73/200)*len) 向前走这个长度
, L+ ]' |6 l& K/ Q" \) m# Y/ J
1 g$ n& V8 g3 e: G, H- \5 l$ k 2 K! s: r v0 C+ j4 M; g/ K
t.seth(210+ang) 旋转这个角度
2 x7 M5 M E. X6 h3 |) P
, K' E* [$ {! J+ r
3 x* Q+ h% \- I$ D: H, O t.forward(len) 向前走len个长度
- \( b+ S( `+ C; s$ P5 G, r 6 }( J/ D. b! E8 T
# x( Z, l7 G" s
t.end_fill 结束填充 ' k% |' D9 ?: {0 }7 {: ^4 H
, K: F* C1 A0 I C . a5 g; a. D9 b: ?- `
t.fillcolor(c) 填充颜色 - @, Q7 K3 S8 x" X
9 M4 V9 E- m8 p1 l/ O
3 I) ~8 U9 B Z, N$ s2 }; \$ r( s0 q0 O
t.begin_fill() 开始填充
' D4 |# x2 J {" N 0 M* i" S9 }- F% [+ a: p$ |; ?3 s& n7 _
& w# \, w, T& F+ e, T: d+ z
t.seth(ang+0.01) 旋转这个角度
! x5 `6 w; N- h: D8 f8 W# I* S
" o- d: a% P0 y$ f9 c5 n3 s # Q" s. q8 F) z- y4 T6 N; R
t.forward(len/2) 向前走这个长度 # F: q& v _0 e6 q0 n
/ f Z H M* f
: ~3 G6 x/ d+ @ t.circle((13/200)*len,180) 画圆
P. l7 Q0 \9 o0 o7 u, l. t! v 2 J, w9 G/ K6 b' O/ P* X
7 k" q! y; U# t8 J# S/ N- | t.seth(30+ang) 旋转角度
. n) s- O" J ~* J6 y$ Z) p' ^
# R4 Q9 a( z( C! j! G
! ]6 V/ k. Z6 a& U/ \ t.circle((14/200)*len,180) 画圆 ) }: A3 [1 d3 s- E6 ^& \! y
+ w5 m, G# }& y7 a
! p# c' L/ f) C! k% ?' I) ?& F t.forward(len/2) 向前走这个长度
' {" H: g/ a# K1 ]* J4 l
]# b! B* G$ r) |
3 @; r# Z! ^1 i- E/ a; g t.end_fill() 结束填充
0 r; O& q& A f i8 T5 m( w5 m I/ v" ? J) G
& t0 c- b; ]3 @ for i in range(12): 设置循环i
: W9 _' X" k" J" @9 M# b6 t ; j3 n* T7 R% f) _; N
0 [: ?% h% L- j* ^4 ^. B* z7 m9 e
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 ! N: b M* k* B
: J4 ]6 Z8 ]5 k! M6 a
) j, v" o) Y$ A1 T' Q/ x6 b! H cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
; ]& x$ u( R4 s$ B
) j0 T( \8 J0 k% y7 Q
& D; _4 n7 [9 p1 ^ t.pencolor(c) 设置画笔颜色
2 C( u% e$ j: _+ t) H3 A! N : \) p& e4 ?0 }- L. d
( H* I( J6 m) G% g3 e- x
aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
8 _ y% d- W% s3 \# }
1 V( h: |0 I5 Z5 R; Y
9 @; N9 e R! ^+ W2 f6 c3 O h+=0.15 设置色相 0 }5 U* l5 {4 j& f. l- L
6 e: z, O; F4 {) ~" ^
' s( h: ^! z- v
t.ht() 隐藏画图
9 F3 ^9 {. T6 h 9 h6 ?% M/ a# c& X; `- O
4 \& V6 r3 G! k* d tu.done() 结束 ( l; P7 T9 p: a5 j
- d" B9 W( A) J! K9 b
$ ?4 r7 U1 A, K& h, @% ]
& Y6 _' B9 T- x* m9 Z! O
3 F5 N' L( z. \3 c; F7 } 8 D' e u9 ]' M$ M% \% @
源码如下:
& p6 F- S+ z [6 J! [/ _/ D . x: M1 H6 Q2 M2 Q9 X; O2 `! j8 E' q
3 B- J- X2 E+ G2 w5 K4 d' o. n! K import turtle as tu , l6 n- ]1 v7 ^& ?* j0 y
8 o3 }& z) P- Q% V6 P
# ~3 g3 o' }/ h/ I, ~5 n import colorsys
V/ g# {8 C+ t. J5 j6 O# P' N4 Y _9 _/ q9 _" }" z$ r
# i( a$ h% [* E6 A& o# N
tu.Screen().bgcolor("black")
" U* _- l7 m7 C' n " J% e" a. |. F: |7 t6 c
8 e8 [% p9 j' ~6 r& U7 y4 P
t=tu.Turtle()
) Z+ ^- u/ Z' c, ]1 ?! V1 K 2 Q. i8 q' J a1 h: T/ s
. q2 {; e- y/ z5 q" r' c! G
h=0.3 9 P' t3 ~, z) R8 L8 ~+ l$ E
" y* o; G( M7 g3 x* B# t
. c w. p' d- M+ M, w V! N def aaa_coder(len,ang=0,cl="#000000",c="black"):
n8 L+ o' V6 C; R& t 0 \# J" |$ q5 @% T4 H- |5 a' z3 F" B
8 q \# q4 l5 w; d+ E
t.seth(ang) ) f: J- |+ x* Z/ d
2 n7 G1 K5 c- p: Y, e
1 S( l- k# a. H! F1 H. U t.fillcolor(cl) ! G* Z0 d# b" a
5 _# v5 m* _2 Y7 G9 t: ^6 z0 V5 p $ d# \9 {9 v6 i: s, L, i
t.begin_fill() 5 {+ q5 [! {# l( ~( o3 v
" P- v# }4 r3 ~
. B0 Y. n M1 N/ s% F: K, o t.forward(len) 1 U! |; X* m) u+ \! x1 F
1 g; J* V$ e2 h% R' h- x- \ ' O9 \: A, h6 m- _6 k" b, D/ Q
t.seth(60+ang) % l( T8 u7 d3 I: ]! h. v- S
) i3 a7 E# q# w! k+ e p
& I3 L% q+ c' n/ y t.forward((73/200)*len) . o4 H7 l, }5 h5 W! p# X* v5 [
, E4 X B/ E; K% f" V
9 V) L( i! J6 `0 \1 U* A t.seth(150+ang)
' e. K* b/ X1 S! I4 L 3 \4 A. F- `/ j5 h9 l3 N
' L6 \; l6 q8 {% O$ W7 p/ T
t.forward((73/200)*len)
0 i' D5 s! ]# O. S) d/ ^$ [- L 7 ] K8 O1 m( `9 K
; ^7 p* u2 @2 D- t8 ^( k6 ~: {
t.seth(210+ang)
' l) y' j1 O5 A2 \8 r- Z / a5 ]; e& t" J! n3 Z, ]( ^; b
6 v3 n4 c4 ?% H) m1 A- A
t.forward(len)
: n4 }! @* ~& r' ]2 C0 V& O/ Y6 f! o . \# g$ q. ?( v- u. s w; b" |/ D
- [# w3 _1 k7 w+ h$ {
t.end_fill
& s; j; l n/ @: ~+ C6 X : U5 X- n2 z; E# x# E1 o
, g0 B. \2 G$ ~/ U. o0 }" c. y
t.fillcolor(c) * r7 \ t) f+ ?- B" d% F% H9 p
! n i- P+ e( g5 N. D) K4 k0 E' f( n
9 W5 _0 _! g% F" x# s t.begin_fill()
k# G: ?2 }$ E" T : k- r9 } F. Y- c6 Y
8 w5 j. t+ u |1 K' U W9 U t.seth(ang+0.01)
& n7 e# z+ Z( C3 O 5 I# _% `$ d* h- s4 [* x% Y
! C# A& C3 U" D4 G: e4 z* j
t.forward(len/2)
- p3 q* `# d/ ^! h5 N9 ~8 w' @1 u & ]6 _1 Q! ]: P* f* C6 j" P% g7 ?) q
' F. S# O0 _% B
t.circle((13/200)*len,180) ! l7 m v4 V; \7 i: a+ O
% j8 U' |, \3 M5 ]" \* ^2 G # y1 R5 E$ X; j9 J
t.seth(30+ang) / @3 c9 u; r; i. ~# X
& ^* F7 k6 g6 z+ F
' n* c9 e% `0 `1 I% z t.circle((14/200)*len,180)
- L- u$ h7 U" ~0 L) d7 w+ \$ C 6 D$ D) p: ?2 i: ^1 w
+ n4 f) t M, j1 {5 f
t.forward(len/2)
5 }4 D* \: o0 ^$ h. C6 J9 m
) |8 \5 _8 r0 p+ g* o/ \2 h 3 N( C; |) H7 ^$ p: B/ o
t.end_fill() 8 D5 `0 E/ Q& w$ V9 b2 e
, m, \0 C" L( D) @; [7 Z
! C8 q7 n) O3 }$ h
for i in range(12): 6 ?+ R( Z) ^3 c4 }# D
" U9 M7 K% f6 \
% {4 [- I2 A2 K9 O$ m c=colorsys.hsv_to_rgb(h,1,1)
8 F$ l$ f) }$ E$ j+ C+ f# w* | 7 [# U4 V0 K n6 z+ b& G
% g5 k9 W N2 S. L7 }' e cl=colorsys.hsv_to_rgb(h+0.5,1,1) ! w! @. k' `, [5 g9 X
7 K) H( [" w0 s# X- @) ?4 K. j. Q
6 |$ m1 f* G& W8 N9 E" p; | t.pencolor(c)
" Q1 L7 y2 [. u7 z' q ! A* u5 {/ [0 k# s6 o% O
3 {( Y% T1 C6 Z& N( F* V: s/ [( Z aaa_coder(280,i*30,c,cl) 8 w' T# Q6 x+ M
1 H# f9 F6 `* f, f
7 w: j" n9 {7 v; ` h+=0.15 / k) I( F2 l+ V
2 \ f( C. y1 ^, Z
% f% I5 |. U s t.ht() + }0 i, H' u7 Q
* k3 t7 h7 i! T5 n) k% T4 }
0 l; \% ?$ }- ]8 U
tu.done()
# y% I0 d+ U. V" b: S( n1 D7 K
+ s0 ]- w" G( @' y. X) V7 K' y % S; V5 g, e$ Z+ S w) x7 d
7 \3 z* R/ R0 P1 g* Y3 C
& _$ a8 J1 d* t6 ?
" {" n) _" N5 O! h" Z, F 举报/反馈
W. d" |' P; K3 R ! }8 w; a7 D+ o% w( k: ^- t
. H, L5 r& e. E& m7 H* q" ?3 p# H X: n
6 v2 j9 l/ S9 ]1 [
4 ?5 u& g& }, m5 m5 X8 Y
|