8 W* d9 o. X' o( I0 C3 c : ^% R9 `' C: O6 q" j; t' W
* g4 P8 \/ k' A& H( A. F7 t 9 f n* J) `# Q$ z
01:39 ; u3 z: ^$ x4 O
; o% Y* m0 ~' f* `+ E5 Q
) p5 i: u: w; Z# S
, _0 l9 r+ t* T
8 J4 z f/ r7 A4 F) g; q5 p 用python画漂亮的类似七巧板图形,源码解释如下:
2 ]. x( z, @, `& ?8 n! l& m8 x
' u7 |9 j4 R) Y4 W1 G( Y+ Z P ( f3 R+ o6 ]8 K& i4 o
用python画漂亮的类似七巧板图形
8 x o2 s" S4 Y+ t$ d1 j z " f0 w& P$ Z) d5 r" X1 O6 o; z
j% M: ?, C3 g0 g% w6 n+ z. B$ x( A import turtle as tu 调用turtle库
7 B: S: q" S# n; j2 |9 I ; ^( Y/ T+ h e# _
7 @, Y9 ?+ d9 A: g* y import colorsys 调用颜色
2 r7 g; f2 h+ L" |, c1 D . ?3 {6 B! M% k1 {2 g
0 k0 q t. q5 w5 S, V. @ tu.Screen().bgcolor("black") 设置背景颜色 5 h& ?* }- x$ |+ Y
* V3 Z6 H7 i( U( j+ f+ h" e
# v- U3 l) a5 I: o8 t t=tu.Turtle() 设置t作为运行主体
' y( w- }$ ]4 [1 {4 U7 q5 E5 [( @ # L. u5 _% P$ S! ^
4 _ S: X2 h# M
h=0.3 设置色相 3 z3 F B/ M% n7 c* c
5 f" g0 M1 J9 B
- \% j! ]' L% X, V' \0 J' P def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 2 O, n6 {4 @' M" C6 y; c
1 G% f: z& q# t: Y: I ' `* d) U/ E) U$ `; @$ J
t.seth(ang) 定义转向角度
+ D6 Z4 i$ t6 u . ^" j8 z. v- X& Z! c( D6 g
! k6 R# [0 ?9 T' Y/ Y0 b% L t.fillcolor(cl) 填充颜色
* Y) m: }* }) A( V$ B
4 ~5 s \ n4 P0 h) ]2 a
. N3 f, Q t* M6 E4 o/ s: @1 I4 C t.begin_fill() 开始填充
& z9 L( A" b6 | 3 J: L9 M0 e4 L( X8 c
7 x! U9 g* S. J1 Q( L/ Y, s t.forward(len) 向前走len个长度
/ [. V8 ]4 I3 x, _4 i
& G$ D+ `/ b* Z
' P; b+ u8 x, X. w1 I, B; E t.seth(60+ang) 旋转60+ang个度数 : B1 x* K5 v! Y
3 I/ d/ l5 r8 s + I1 x- }+ z* N7 ~
t.forward((73/200)*len) 向前走这个长度 6 l: L1 v3 C2 Q( D
' Y1 D9 F" `. y u2 v
5 E$ p7 m3 C1 b* A5 X t.seth(150+ang) 旋转这个角度
4 x' W; A; A3 [8 x# ~) F' n7 E$ n $ J; q( J2 T! ^4 i
( i: [& k/ M0 Q
t.forward((73/200)*len) 向前走这个长度
( [& ]2 l: j2 O# Q: ]7 }& Q 8 Y9 |' y3 D. _& J/ z2 R
1 J, M( o" r. w! S9 x* e
t.seth(210+ang) 旋转这个角度
' [' T( ]2 L9 l. P
. U K% c! y. x5 M8 x2 L& b0 F: T5 O 0 B0 V4 i% c5 w3 P3 M: {
t.forward(len) 向前走len个长度
[- a' t" C4 p; O0 v7 V; ^
9 A. d$ b* ] P1 u, a, C! H. @/ p & W1 p+ J% i: j( R
t.end_fill 结束填充 ; m3 `! g# F% o! p
+ J4 K$ N8 G( ` X : O0 \' h2 f. Q6 I
t.fillcolor(c) 填充颜色 ' w& d; ]* s9 t
5 n$ U: L) h9 e9 ? - m M' k7 Y* d& O! D
t.begin_fill() 开始填充 - M+ u& T5 ~. {" v
0 c, Z8 Z/ p/ f. O% Y! n3 O* H
2 v: V% b! T Z8 F0 q3 j- w* ] t.seth(ang+0.01) 旋转这个角度 5 d: x' V$ s4 A" {" H% g6 U& T
. x6 J8 X/ L K- G6 G
7 n$ C3 n& G( U! B0 I; B
t.forward(len/2) 向前走这个长度 - J0 q: z7 x; v0 o3 ]
9 K6 l4 C5 q( t. B+ D 3 q: Q6 H2 @, t2 \' n
t.circle((13/200)*len,180) 画圆 6 Y9 y3 M2 M5 f* O0 Z6 m) s: o) `/ h
* p8 o1 ~3 a1 ]4 U8 `) k$ m
# ?. p O `% m0 ~& f$ Y5 ` t.seth(30+ang) 旋转角度 ( g5 P5 q3 R; q; ]& b
9 K/ d5 _+ x! j- e7 [0 o
+ M- m( ?2 y; J X t.circle((14/200)*len,180) 画圆 & O5 a. q% z. S/ F0 W, C
8 y1 z! o: f* w% H; M9 O- e7 A
, K6 O3 l5 c. M2 H! N t.forward(len/2) 向前走这个长度 8 j# L+ N* a9 ^+ }* |( \& c
' v8 I; J% B+ w& I " U1 m6 q4 ?- o3 X
t.end_fill() 结束填充
2 h3 E* b, F0 n7 n6 h
6 D$ w* `! Z/ L' Q
, _7 R4 @; t$ ~/ Q/ _+ j for i in range(12): 设置循环i
+ u' Q7 h: N7 y3 H
, t+ j% r' V0 F
5 Q0 R$ o# E4 h$ c c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 r4 s. o" @) C1 K* K3 y7 Z
# O+ j9 j' T! X# k
/ _4 V+ M7 J2 Q5 }" Y+ O cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色 ! O# F# P0 G: W$ v r8 W
- _8 ^) S, F7 h8 p, }0 n* R) P
7 s( ^5 c4 s- u+ K t.pencolor(c) 设置画笔颜色
i& s$ D/ E; q- U0 w0 p ) S- V# S0 K. u/ l
" A" k" r$ U; j' U4 D) Y( U$ b
aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数 - [+ w, x1 d! ^) ^5 H3 i; Y
9 k2 g F6 W5 ^) M# o1 U- n- B 1 r4 ^; O" z4 ?6 O
h+=0.15 设置色相 " t7 X; t7 ^9 E/ @
( E3 R) k1 X O& O* j/ I0 h# R! M. r ( U8 Y7 z( I2 G- n# B* ?- Y" k
t.ht() 隐藏画图
& Z/ \8 e! s9 Q
4 N; P: }1 B% g6 v& V$ H
- z2 F7 S( ]6 m% _ tu.done() 结束
1 x& J4 t8 y+ N. s8 i8 W
7 W& i* }) |+ m* ^- ?6 N
. O5 O& o" l4 O6 D% S * U( v. d: k7 s) f" u' |* k5 g. ~; i
Z! o8 x2 m* L. e6 M9 k
# _( y6 Y" E, W/ K 源码如下:
; M5 O/ U* q$ R; q" o
) o F5 J6 z+ ]& r( l, g, o( v
2 P$ ?7 R* X0 d& B. F9 w6 i- s import turtle as tu 3 R( K. Y2 f v% J5 |/ v0 s
/ p6 [6 I( e. D: H& o6 N4 C
/ `8 P8 l( ~! P H, v import colorsys
% I {' K/ c1 t& p7 m p! T6 ], s
" S- X% V! Y0 S( E3 {
6 O8 h/ j- v4 `$ R tu.Screen().bgcolor("black")
: j4 p9 `0 V: Y* I$ W/ w) z- C9 _- X5 ?
" H. f8 L" c" Q7 Z8 F" P
9 l) F9 ]' L, N! y t=tu.Turtle() ! S: l" U; j5 U* a
& I# P* `. H% c ' d6 @6 |% O* e1 n/ A
h=0.3
* ~9 ~/ X: o/ K3 i4 r 1 N$ P: l! A' p; Q1 e* R& j
6 T* N* _) n n* q8 k3 [1 a8 F8 Q) \ def aaa_coder(len,ang=0,cl="#000000",c="black"):
' ~ m9 s6 Q* t% z9 b& K
( O" }+ N1 L+ `/ G1 w & K5 J) [2 c' \+ W
t.seth(ang)
# _) x: S* [7 q B/ N; F & n# [0 N1 d! L0 }6 X2 n5 e! a# k/ M
! b, J. z2 |0 Z, y t.fillcolor(cl)
" s1 o4 w- ?6 f D$ h
1 l9 p% H/ s. }9 J$ o% `
: ^0 G! D1 I( D9 h- {3 S t.begin_fill() ( W7 c% z. R, W$ P8 e
- a( s6 t9 P e" N- r7 ^
, k/ H" E: O, ^& b5 O0 r t.forward(len)
8 h( g4 _" w/ J& f
+ @" i5 K8 \; }8 C: m) k! m1 H 3 V) J9 p+ g: t: O: C2 M0 Y
t.seth(60+ang) ' S) G2 m$ s3 C" o N
$ l0 D0 l& s5 f; ^: v, j
9 l. B6 X* O( b. j8 \% U3 s! o
t.forward((73/200)*len)
) x7 o5 C8 Y2 s: O+ T3 U
* R! s( s& t2 a, ^: I$ u- M/ c; v 9 X" O9 F/ J1 p2 e; V" z
t.seth(150+ang) 6 s6 T6 j5 ^( T9 D4 ^2 H
/ X" T, c7 ~4 m( T+ N# V
! K7 e2 u0 R- _0 W$ m t.forward((73/200)*len)
3 g+ G7 }* G5 ^/ I ) k& p5 _+ Y- `1 P% f
, C7 H: g0 ^3 u* t y t.seth(210+ang) + X6 K1 Y4 G/ S# o" I: Y; q& J8 C
1 o6 @% W/ A1 Z' K
& Y- N, s- z0 ~% \" B0 N t.forward(len) / u6 H4 ]9 S& E4 w9 k( {
' w" X& e c2 x
2 i) q+ K: ^8 i* _, w, f0 f t.end_fill 0 H. x3 t! N- p1 }; B+ J) b$ p
: F% a! J0 H) w! @! S( |
% m% C/ K3 s+ A* k. G7 h: L$ w3 Y
t.fillcolor(c) $ c% o: G4 B9 `! T
7 O, y- w: b3 k( ^3 N- | 4 q$ X% n8 M6 I
t.begin_fill()
) l: O$ f }# ]7 D. D) g
, z$ z& G* B9 j " u% Y2 t- `9 a4 ~/ K
t.seth(ang+0.01) 9 S' J" i s. z% X3 ~
; ^0 J0 _* A- j# b- w
$ N7 _* a- a& W, X& w t.forward(len/2) 8 f- h& U0 ? i
% _" t4 r7 B- n
; D' t3 c* y* y6 `# _& o4 _# T! F
t.circle((13/200)*len,180)
) i3 o7 k' v9 N+ C7 U+ S/ p
3 Y% a* B( j) [. {7 Q' t+ V " Y0 S1 v1 u6 I( ^) U! c3 p6 L" x3 c
t.seth(30+ang) ! t2 {/ R/ N' H! Q& s6 f; k* Q
+ q5 v% f1 {4 D4 ^$ Q% u
: `5 V( e1 F" n$ \' Z& p t.circle((14/200)*len,180)
6 Q$ Z1 o. Y5 Q& e8 O 6 C0 n' p* q/ [* M, h
/ B3 Q# x( c/ i1 O3 e; B/ [$ ^ t.forward(len/2) 5 t) m. v$ }* K) u- }8 Q. c
2 P* p3 Z0 \' f: N. U9 ~+ n
: k1 V. c6 a" ^0 o" {0 C
t.end_fill()
) \0 Y8 x2 \% h4 _* n4 x
- _; ^' o. @! t: X2 H6 \
1 g0 V1 R2 G. L- e( g4 X. ` for i in range(12): 2 j& t0 s" H% U7 Y7 e& b
! m" g9 T) F! j4 w) F; Y
_% s9 u4 o* T/ h: z c=colorsys.hsv_to_rgb(h,1,1) + J( n. U$ P. [5 {
, w# _( x: g" l0 u 8 T' J+ ~% o3 s' C" [. ]$ o) w
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 2 b% H ^, c; m0 k* l: U' O, B
' i, D* x% Q" {7 w$ @
. K! D- X! o8 ]' m+ |
t.pencolor(c)
# |/ M Z& j/ J2 g' Y
W& l R$ C8 P* [4 N# Q8 A2 }) f
9 `: f( F [/ j2 s aaa_coder(280,i*30,c,cl) 9 a+ g3 u3 S' A7 X
! _: m- |; B b
4 o+ t1 K5 Q7 u, w# K y h+=0.15
7 q2 o. u' Z' T; `3 ?
! h s+ C$ c: q
2 e* k; ]/ y/ b$ y, ? t.ht()
4 {3 |/ A1 Q/ |+ Q # r' I' h4 {, Y% e
, J% @3 ]. T2 D9 j$ W tu.done()
* Q! P3 p- t0 S% o : K6 G1 h3 C3 M/ Q$ e( H
7 O- M! S* B: j# w
( c: T) w% `8 H9 C7 J* A # s$ X$ ], u; @" c
4 S) |* T% K' Q! \. S i L 举报/反馈 - I1 }% z0 E0 F9 [9 T4 \
' e4 j% A3 L0 \1 j$ P2 P2 c
0 \& P) U. o8 Q1 o3 f8 p6 k( K. }2 o0 V% g% Q/ }3 G% R5 ^
0 ]7 e* L0 }3 F$ o4 \9 f
8 N: M# P' j& Q5 y# M+ [6 [4 V |