5 V% L0 W; N+ Y) M* o& v
9 }, ^9 n i" k( [: U) N5 W# }9 H
2 C7 Q: D, E: x, D
+ ]* M$ R# O4 H# P 01:39
7 y: L6 z1 e7 j7 ?6 Z& t; a! P
9 Q6 D+ Q9 _2 H1 M : u5 \1 `9 O* L* p! `
6 i4 |6 c+ d, [0 J$ a7 l
6 y% o- O2 z* @( ` 用python画漂亮的类似七巧板图形,源码解释如下: 0 T$ \( \8 w" J0 B2 ?, z
6 x7 H. K4 u; s1 d ! c7 f; a9 l. G3 e
用python画漂亮的类似七巧板图形
* |( v+ N; @; [" c! f9 s / V9 |- F/ {# \, F4 X( [9 U; J$ j
2 T1 U% g, _% G4 N U$ {
import turtle as tu 调用turtle库
9 e1 W" }. B. Z) ^) b( R5 g 6 V$ p$ v0 b/ N: A3 y- C1 ?
$ e& t- x' B$ J8 U import colorsys 调用颜色 * z# Q* Y7 p: S# e! I1 a
- z$ t9 X3 L O5 j8 m5 c" X2 V
/ J V* s% N% q# d
tu.Screen().bgcolor("black") 设置背景颜色 * [. M. m+ i8 m5 H
) u6 G7 [; p" B7 p 6 r8 `5 c: L& G2 B0 V7 Y# k
t=tu.Turtle() 设置t作为运行主体 $ f% P7 E! J J# _; n1 z, B) i) |
5 c: Y4 }; ]3 ~$ T( b7 } ) l- A* a$ o( I
h=0.3 设置色相 3 s ~3 c" M. m& G: T6 O0 \
* Q3 A4 {$ V2 Z4 s+ H / j/ f( n7 d `1 p
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 6 ?! p6 b4 Y" x" p/ m' B
1 Q/ E9 K/ T9 ~, G8 ?: O
9 m& R7 B8 _ [ t.seth(ang) 定义转向角度
% i, s6 Q, t1 g( r f , ?0 @0 U9 C V* ^, M3 y0 k7 y6 F
6 ^( s# s3 H& ~$ Q1 ]) J t.fillcolor(cl) 填充颜色 % d( W3 g" M/ C3 C" e# C) Y
. }- H# j3 H. h( Y
; ?- v. G2 `) w) S% h" z9 \. q t.begin_fill() 开始填充 0 @+ y# Y0 G# d6 V" M
% u1 p& n8 ~+ F1 Z) e 0 H1 P; U; ? f, O& B
t.forward(len) 向前走len个长度
4 t2 U8 T S, B1 X: D1 S0 G: a7 V& x
6 E2 B/ P- Q6 s$ t2 z$ ^ . b* j! n2 x7 a; C. d, h- _
t.seth(60+ang) 旋转60+ang个度数
# O, z+ E) S, u3 {6 X" L0 `4 G
" I0 l# }( [! Q7 n / i! H5 g/ U! c y; ~9 g
t.forward((73/200)*len) 向前走这个长度
- K& f- b8 p8 W5 {: P2 k
4 h* u; K5 V* G# O# m" v% w
4 }& P# s2 R5 E7 H" h# q! y$ [/ D t.seth(150+ang) 旋转这个角度
. N# ~' [: s+ _& Y* G w$ d
6 z5 u! y, j% ]+ t
3 g% N4 p4 w5 l5 N% Q& M# c t.forward((73/200)*len) 向前走这个长度
% `6 [* Q' g: ^4 ?* O % B. ~2 u( t1 `- a8 m
: Q/ `4 b' `% U6 p; [5 l
t.seth(210+ang) 旋转这个角度 . P3 ^: p. A& s" _) T
. p+ D- u% P$ {! G
* s( M$ a* F5 L# X t.forward(len) 向前走len个长度
$ L( M1 E$ j: v
9 p, p/ k1 V; R7 h9 o3 F+ M' Y : {& J+ K; e5 P: }- F2 {$ [+ h
t.end_fill 结束填充 ( E) C, w) _2 a% B ]9 }0 F# Z1 L
# m4 e8 G+ @$ l$ b6 B 5 W1 u$ M+ ^$ h) L Y! g
t.fillcolor(c) 填充颜色
$ Q3 v! h2 E; g6 X. v: E% ^# ~' [
, y P6 e6 h* O2 w 6 ~* l. X4 l9 {4 s
t.begin_fill() 开始填充 6 y# b6 v1 l, E7 R- m( Y& G2 n
4 e+ ^) ^- h7 [
u0 J2 P# |% O4 R
t.seth(ang+0.01) 旋转这个角度 : h4 L( M9 d, L
( w8 u& l" n4 Z6 D. l. J% |* Z. v2 l : C" M* l4 P$ v( ?3 `
t.forward(len/2) 向前走这个长度
1 d; P* i2 K- {1 ?, T- u1 R/ O9 y8 l8 ~ $ W/ V+ S1 j; I* q/ V) n3 D/ T
! ^# ^# s& D$ y2 J; [
t.circle((13/200)*len,180) 画圆 % S8 I4 q5 R, g
% x$ b. K& Y' X9 i/ u9 j6 Y: y: ^
" Q0 F4 j6 c! d# J
t.seth(30+ang) 旋转角度 3 z7 G0 f8 \& f: L2 U. S- t. t
: r7 j/ ]: ]& ` . N( D. k* v: ~3 r3 w( H
t.circle((14/200)*len,180) 画圆 9 B0 e3 [. v6 f9 U3 p! n b7 S
! Y! ^) d7 d# d. l5 D 5 X3 y" E7 M8 r; y0 x4 V7 N
t.forward(len/2) 向前走这个长度
6 r4 m8 W+ q5 k6 G6 h9 h$ E 4 { x, y% ]: u" \! L8 j4 ` s- U5 t
, o; b! y2 f2 \% o9 b1 V* b+ t
t.end_fill() 结束填充
6 t$ t- J+ F: G! g& Z8 A C $ M$ @' q* }' u H+ r
9 r, l$ T* }: p7 W! a- ]
for i in range(12): 设置循环i ' h* M* S( L6 ]3 _# y/ v V
* I7 a# H V. `" D* W0 ^1 l1 E. A
! e4 V0 P2 w. r) X' p" q3 {0 R c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 9 n4 Z! H4 \8 d3 f7 t; v0 x$ K
1 k; c! k. W% N" [3 l! T g& i
+ _9 k3 p( Q5 ~% z
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
" n5 V2 I7 m9 `, k7 O / ?, |: L+ w$ v: _3 r+ u
+ ^6 G, f, s. W7 h8 t; @3 _
t.pencolor(c) 设置画笔颜色
, m1 b( Y1 s1 E" [ 5 N f; Q! x4 W) D( W
/ z! u: Z% _0 V aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
8 r4 `8 |/ p* |& U' L2 ^; G
3 I& g- A2 _# S 2 G- _3 g/ _; K0 ]' Q$ G7 J
h+=0.15 设置色相
7 Q/ m& s* K: m0 h8 p: G) p
( |' l! |9 W5 j( E
9 j2 i7 X! \# } t.ht() 隐藏画图
! g+ p+ W0 B: o5 U' ?$ c
; w/ r% B, G; O ; g, @) }, Y8 N% b
tu.done() 结束
3 |- O$ g s: d" L5 R- O' U
* u/ T( j" K. r+ R! [- G1 x& P- M
5 b$ ?: T0 P8 H8 R' X( s ( E+ ?5 ~* n: O O3 t% z
6 s- Q8 B6 x% t# P t 4 _- s% u1 v/ A/ u3 w1 o5 p
源码如下:
! r1 I9 y3 u: `; R$ [$ z
( Q0 V/ t0 {, u
$ H I7 l9 T* J z; j import turtle as tu : H5 |, h' x5 a- N' D6 K% j* @
6 q# E' C6 w2 w8 L: v' z 9 ^* B, P( R6 Y# s, D; k
import colorsys
$ U5 X9 o3 |/ l M y% k7 |
8 R- w: e5 r% F " Y8 M5 h3 Z Q, m' ~& f
tu.Screen().bgcolor("black") 9 q1 @5 {7 f' Q- `
& n; k3 ^$ U$ ~/ ~0 a) }
% j. D. b- n4 k, X4 J) l. g t=tu.Turtle()
1 l4 P+ x; `. l% w1 u7 V8 ]4 x
9 a1 E/ u7 R( g4 E0 }( B/ {: W2 r) k
0 L# l& {* R7 C) b/ S h=0.3 . r) s! x2 S, V) y1 M' p- s+ Z
0 |( }4 e; ?; x; y9 ?3 w3 }6 u
5 @: b* `9 s+ }* v4 ?- Y$ e def aaa_coder(len,ang=0,cl="#000000",c="black"):
# f( C) P5 }* s: n- T
# X+ m `! U" a5 t9 z: f# B
: s/ |1 _& J- q0 q0 h0 T X t.seth(ang)
. }1 X6 S0 n4 T7 g5 }
+ c! P% }6 r x9 N. P
9 y5 U2 g6 y6 M t.fillcolor(cl)
: r3 }, G1 N, r9 z " ?" ^" ~! S3 W0 o
$ }; L a1 d7 [2 { t.begin_fill() , K/ ]9 M2 j0 j( `- E+ i- H
: J4 M' E* e4 z; D& H
' ?; \- M+ Q4 |. A* g1 l t.forward(len) / @+ o& o; u) @; F- M Y
* f, |' }0 d1 B _$ {) F0 C
5 S1 F, @6 h: V2 b4 A+ U" y# }) ^
t.seth(60+ang)
/ m0 o2 m+ b* c4 `( ]+ P/ A ( v' @( ~5 ?- K2 R! C" Z6 b, `
5 J7 G# M8 q' e, ]9 [ t.forward((73/200)*len) , Q4 |, f) ]; M! k
2 X9 e" W) x' E! u/ K- w! I8 W
S3 l3 p3 U3 r2 h t.seth(150+ang)
; m" i: @! v1 ]# @% p
@, G; |. L. D$ _2 `# |
* y8 j$ G' {# R& V; A t.forward((73/200)*len)
$ n) _! |& D: L
e6 j2 W$ E/ d( D- G+ M
9 ` f o* W$ a' E0 }. I* J t.seth(210+ang)
9 w v; w, x/ V- k2 M0 ]6 B6 ] , i1 D' ^6 M* d. D0 {
. n& p6 X' r2 \# {" T5 |4 ]* P t.forward(len) % [; s- d) V( `0 u/ z
& k1 U a0 X, i# c& a+ z0 t" P9 n( ^1 S
' ]3 S/ L! q @& \2 I8 |
t.end_fill
3 ?9 J8 k1 C* v9 R1 w, O
9 r4 v# g: }4 J4 k $ Y' t. s7 ?1 W' t# ?: O5 d8 _
t.fillcolor(c)
# ], K; r) s" J& I( w5 _1 w , q8 W. ]9 Z/ d
0 O: e. @0 @0 |6 D t.begin_fill()
/ r4 [: q2 o0 I* u! A p5 Z+ g: g! X7 a
$ H# @( x7 o( {* C* A t.seth(ang+0.01)
# v* Q. }9 z$ F: B' m1 _ y, E4 ~/ Q, {5 X8 |5 c: n5 E
% j. f# s; b) s* [7 |2 M( \
t.forward(len/2)
! }4 n8 Y3 m9 o/ f0 t/ g" r
0 |9 P3 y6 ]0 F/ ~7 V Y& X: S * ^. @! w: V1 ^7 d# l
t.circle((13/200)*len,180) " d' W) m% V2 p8 V) d7 k* v" t h
" ?3 w6 s- R4 G
! z6 E" b% k9 }/ \! r, K2 u
t.seth(30+ang)
* e, |3 Y! o$ ^: [: B, g9 e0 Z
5 `$ x0 B6 x0 y! B" F m S W) T! q- x e
t.circle((14/200)*len,180)
+ t5 J. G- T; `$ \; m8 d6 t 8 a' m- s5 e) l
4 D( E0 z6 \- _9 Z% i
t.forward(len/2) $ _( w, j$ @" z& R' r5 m" K
% Y& N+ r* e6 d
( m3 B8 t- ~/ \" H/ M' z: `5 w5 _ t.end_fill() 7 P. `! ~' R" z& h7 x5 u0 l
, e& N- ]! ]+ G& h7 v+ i H9 Z
6 ^; F. @- F' x# Y for i in range(12): L# o: m/ O1 {5 j/ z
1 i0 d+ E0 g: x% p% \1 N
1 U+ U# ~7 p! P2 X, } c=colorsys.hsv_to_rgb(h,1,1) 9 Q2 r3 o, `# F0 x5 B4 [! u
$ J! T8 x) j' l5 l/ Z
9 p3 b; w" x/ u" _% u
cl=colorsys.hsv_to_rgb(h+0.5,1,1)
: W5 Y0 N, G& l. x; @* l3 [ / `: T2 |; ]4 z T/ ~; Y" H# J# A
4 j6 }/ J) f+ s1 K( v t.pencolor(c) 3 ^/ _) s) p0 r m$ X9 x
7 {: e+ e: b. N8 R9 V/ V
6 D% ]4 ?& H- I4 A4 @1 j aaa_coder(280,i*30,c,cl) ; E; p6 h* B& j& s, O
+ Y- O8 _+ y: {$ c% N
, m! H( G. m1 Y9 p4 ~+ m% |, s; h h+=0.15
3 a! d3 c- e' D" E. p: t% C $ c9 Y% \/ m7 ^
* v5 z6 |/ O/ C4 |& S) s
t.ht() % L1 _1 h# N- L! Y
3 n1 P( f# m6 r u5 C - d6 c/ b, v2 ?( ?" @
tu.done() & Z; d8 p5 q8 q) V0 I
" G9 s" e( ^; @
, y: ?6 \9 a! E8 m: M( f
0 d- A3 e0 i& E3 \
: ~ X+ z4 ~8 i
+ ]* d3 x! g* G/ B9 h) u) V; i
举报/反馈 ; ?$ O7 f1 e5 h+ \
& D9 U3 V7 b, `- m$ x3 {" e" l; q
) w4 n. P5 N& u/ ]9 b
+ W5 q9 t+ q1 p* x
' p ?& w- ~+ n( p
6 s$ u( g( K- [( s* X4 c |