; U4 t7 ], |- T4 f& B
B5 M6 t' x0 C0 M 9 W3 H8 F. G. c3 Q9 K6 ~
7 Y5 k2 e) m! I
01:39
1 Z9 {/ h$ `1 g# i) ~) J 9 e1 a5 C1 h3 K% o, T0 l7 D
& N! M- R, F: u8 o! U- e
/ Y: y- T% V% ]6 j# s0 k
0 ^+ M. h T! v$ @+ `2 Y0 @% ]
用python画漂亮的类似七巧板图形,源码解释如下:
S% N# ?1 S4 \
: t$ h/ }! C; |7 N, \6 G* g( O, R 7 B" C$ |2 p3 F% ^3 R# q0 H* D" N) @
用python画漂亮的类似七巧板图形
8 r+ H8 e0 O: ^% U! S
; e8 [8 r1 f* T# A3 G - X D4 G: c$ O- W% w F+ x
import turtle as tu 调用turtle库
) H! e3 k1 e1 X6 @ `. u& B! e+ Q
' m4 h& v0 U: b! a, ], l 3 F8 ~0 X( R/ l# z i4 Y
import colorsys 调用颜色
: o+ w9 Z; g7 E w" J2 s # U! l7 h5 B* |$ Q/ q2 t
U* V% d' u1 Y* {+ q9 v4 k
tu.Screen().bgcolor("black") 设置背景颜色 / K, T2 d) c. n, v5 j$ y0 y
- T4 c- l& }! [8 X6 [3 y
. a8 i3 W: O- W
t=tu.Turtle() 设置t作为运行主体 " T" Y0 j/ y0 D; N5 z5 S
0 L6 U: _# }1 p" p' l4 X' E* B, T / |# Y0 y1 W9 C9 f: Y% J8 z
h=0.3 设置色相
2 W- f5 o; I; _1 B- a" a1 X8 U 2 y: k; C0 L" G# T7 D/ k
! [ `& T: k9 j) O0 J5 N% d def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 4 C1 J3 X+ g- |6 U4 f8 a/ [
* J) F. S: ~" |. b. d I ( E+ p/ b9 {# }2 m& ^/ o
t.seth(ang) 定义转向角度
0 k# f- g5 S. P0 U* h! ~7 h5 E. V
2 c% {; A& X9 T O k
' [6 B# E/ e; F. U t.fillcolor(cl) 填充颜色
7 ^( S# n- ~* O7 L , |/ S7 j( [; c* O
{- x6 @- S/ S* K) ]
t.begin_fill() 开始填充 ' M' V6 u4 J' M6 a
" S/ f; h! k- M
. L# o& r0 g$ Y; `9 Z
t.forward(len) 向前走len个长度 ( E# C, o: a, w( o
! |7 J% h0 E! E# ~; k, P6 U 9 ?4 i- R9 x8 S4 w
t.seth(60+ang) 旋转60+ang个度数
1 p9 d, M# l7 }0 H0 M9 v" b. j
( r; g1 V# q) W, z* H4 u. m
2 s' X! }) q9 g4 T1 z7 C. {, G t.forward((73/200)*len) 向前走这个长度
0 D8 Y8 F! M4 e3 y4 S . e6 j7 @! E- K& Y, `
7 R$ M0 P2 G9 ^/ H1 I) F Z( L t.seth(150+ang) 旋转这个角度 6 x4 ^- g& u" X& M* V; ~/ ~: b
1 U' K7 x+ t+ a+ p, A" N+ o 9 ^0 L" K# a1 E* T0 C
t.forward((73/200)*len) 向前走这个长度
9 s8 z4 u4 T/ J/ c. O! Q* b; P: ^ 7 C( I, }0 u% ^: ]
! K9 Z! u4 J9 i5 ~8 R t.seth(210+ang) 旋转这个角度
) D7 C6 A H3 q6 B' K e " L6 M& s0 c$ x% z
$ ?) k# B6 r8 _2 V3 c t.forward(len) 向前走len个长度
& y6 w& z* |& X1 }! [* d * Z6 n0 X' h. n
3 e. B+ v" X/ h: G
t.end_fill 结束填充
) L" c9 D& e% ?8 T/ r! N! ?
' {8 M) ~2 g7 S4 x0 X8 b$ Z & y% F7 h' a C
t.fillcolor(c) 填充颜色
+ N. l5 Q: y! J* f: S+ n. { , F7 h. t/ q- D9 ]
* p: v+ ]2 O3 m- H# h& }) ?! Y, @4 n t.begin_fill() 开始填充 * Y7 g- Y" d; _4 e
- L( ^" Y! N( G: p4 s- ]+ | 3 L- F; V- E; w$ M% W$ S7 X
t.seth(ang+0.01) 旋转这个角度
# J( q; m0 k- p+ f
, G+ {$ K' s8 O* B7 A( | - c5 U; z" m) x c& r& P8 R- r
t.forward(len/2) 向前走这个长度
+ `! c5 t, w, Z: B; F3 _! K3 o0 O ( o; T" R. J9 J5 S
- \. I0 T- k# U# {" ^! Q( \. t8 x t.circle((13/200)*len,180) 画圆 $ c5 f( r+ r9 N# Z/ y0 h' ]4 G1 i8 ]
3 _+ s" r' [8 H5 l3 G2 F% q7 u% \
: S: F Q; L7 I4 `3 |* l t.seth(30+ang) 旋转角度
1 c3 E0 f, b3 [3 b7 I$ }0 ^ l
$ _0 i( ?5 O, F$ V/ ^" v 7 ?8 T+ |6 ~4 \
t.circle((14/200)*len,180) 画圆 ' p# G, G, F7 p. }0 L' q
' e2 R0 P, S, s" M. l9 [
7 @/ Z9 h% b+ l t.forward(len/2) 向前走这个长度
( z. x! f0 D, j. u' e
3 k* k9 U( I9 C9 \) c ' @0 Z2 f( T! j/ o) m0 Q s& p
t.end_fill() 结束填充 8 b/ C' R0 x$ i" | Y3 ~: D% D
* r4 @0 p3 N9 H: E0 k3 |( `' B& i4 a
& y+ B! d+ d- R# V for i in range(12): 设置循环i
- C% j$ C9 _9 V) R. K) E 2 o; ~- Z" z6 P2 O
# M1 C2 {; J( X. x) \/ w M
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 " z: D1 ? e$ I+ c, t% ~
! P5 p7 ^7 A v4 s% e: v
0 Z, K X( ?- v8 z/ f8 F: D
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色 2 y5 b N" j8 ?. b
w' [) v% A+ @* l' J
7 V# |2 ^ R# R; v; B. u1 J3 ~+ J t.pencolor(c) 设置画笔颜色
: Y7 N* v7 I4 f3 \0 j8 y P
& j0 j# v; l! G) u) Z 3 a$ S5 `2 h* Z! r+ ?
aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
. n& O/ z3 r$ B. `8 _
4 r( u: C$ }3 |: T" ]; u
1 u$ h3 ^8 M; [" z h+=0.15 设置色相 ) a0 y& i7 d- g( W
8 L: P1 L8 M# ?0 x* m5 A$ ^
7 m2 i" ^2 ~% ]% \2 q$ R: z
t.ht() 隐藏画图 $ a! M! ?5 j- C7 D4 Z$ E
* e f1 F$ I& r9 m4 n4 o& d1 s , S; y4 t) |+ f. K. _5 ~
tu.done() 结束 + O+ D W' \. |" E3 v. t
1 I9 |6 ^2 I0 X/ A" p1 l9 v
# `: V& N. y p9 e
1 I9 x4 L1 G5 t: y0 } ( ~+ R! L" v, l/ K
" r$ C. e4 i5 y! E 源码如下: $ |/ n# l9 \' p$ U
v* p6 ]0 L3 M
' N u- r. ?% q3 l* v8 B7 v3 q
import turtle as tu 7 v1 j2 ?: I5 s" P8 F
1 R* j$ d$ w; \, J & `& E9 i& h1 V4 c
import colorsys & e) Q. P0 f7 F. M m" e; B/ y
3 r; P4 x9 M E b $ x- ?9 Q2 a! ~
tu.Screen().bgcolor("black") # P$ J" b9 z& [9 s
& H% D0 h2 K) ~) l9 v
7 z3 b) @" R' a$ R; D3 z% Z/ a: O0 K t=tu.Turtle()
/ @8 y8 k; I8 j, n# Q- X 5 A+ } D; s. z/ r
* H1 q) T2 n, v5 ]
h=0.3 0 @/ m U9 Q. Y! S g* \5 [
) u! F* N; f3 ~
/ o/ V p5 J/ D- L- X: y+ m$ I9 k def aaa_coder(len,ang=0,cl="#000000",c="black"): 0 a6 u- |0 B! i& s
$ }* _9 H' f2 V3 B
6 O y5 D0 x3 b t.seth(ang)
1 N* a) c2 W2 k% S s
$ j- T/ L' n4 W' v/ U4 A; ? 9 H0 t5 l8 F0 I3 T$ j
t.fillcolor(cl)
9 f. `4 W5 Q* D7 m 5 N5 v/ Z" O* E: f; d
. b$ ~, e. `( b1 ^. _' [+ m
t.begin_fill() + ~8 p6 c9 H5 Y7 V
3 I5 Q) s8 W6 X2 a& w! v2 ~( R3 y : @* P2 F& q U
t.forward(len) 9 l: S, Y& w7 {6 ^$ T) G' _& H
2 h/ J1 X+ m ~+ S1 X
: N5 n: D9 V! S. H* n7 M t.seth(60+ang) . w' a- X4 f, C" v( l) l- x0 i& |# a
2 R1 k6 X5 H, n& [( T; n! J - G. Z( q" n( n( {4 i
t.forward((73/200)*len)
0 i6 N+ D4 o( \, Z
5 R& w& G5 i3 K b6 d D9 P2 g 8 v" \, C/ m& @; L5 G! T
t.seth(150+ang) O; h w1 I; L) c* Y
3 _7 ^1 i I1 P% b' |
; c. Y- u, g! u9 ]
t.forward((73/200)*len) / {& M7 c I" Q+ F! h1 J* g
7 O1 N0 D2 u+ I) v9 E* t
( |" `, o& G3 l1 P t.seth(210+ang)
, I9 p& g L6 y+ w# @8 h
) c5 Y) D5 G# J1 v" K8 q7 M! C* L
: B: ~- h) w2 ~! } f0 q t.forward(len) 6 C0 Y1 f. V% j I
( k9 J& v) l9 {2 J
# c9 e; ]- {5 q% G/ W i& r# C t.end_fill
, W7 A1 M+ l) y4 c3 E& b7 c/ ` . G6 v: i; q: J# [, H, d( n' `+ J
0 V6 V. ^0 n0 }7 z- Z# t6 H# K( H t.fillcolor(c)
, x% d% G7 W2 s+ L4 K4 o# W1 X
% l5 c1 {; d7 |% h- r + J- `' X5 G" B
t.begin_fill()
. k, \+ V. b% \ ) R, h, y8 Q; u: h" E
+ Z1 e3 M3 @3 X$ c/ J, H! [+ m
t.seth(ang+0.01)
( v1 j% T/ [# u" n8 X ?. [( K+ `& L4 l8 f# D& z
# @" A2 ^% L3 G7 z t.forward(len/2)
) R( q1 ~% x. {; B
; \' \) ^* e9 h! c; ~' X & s- A2 b" a) k, g ~5 o# H H
t.circle((13/200)*len,180) 9 o1 s" s, S: |" g- [
6 |+ w; v1 ~: ~% H
6 a, v2 Z' s! d8 \' C! B3 I
t.seth(30+ang)
+ }7 N. Y- k0 ~5 o: g
- z D( `, q. |) v
+ [9 g; a) W8 D# \, E5 i t.circle((14/200)*len,180) 8 L; n5 h0 A, F4 q* Z$ @8 j6 A! T$ C
2 y5 p) i$ H) S/ V
+ i, G. y6 c! r. x' u n! {0 c6 q t.forward(len/2) ' A. _9 f: O- B; e) P2 m
# Z- D$ ]7 I6 u' f 2 e; s+ C+ i( w0 }& f2 O M
t.end_fill() + z) Q* T2 E# d. x: A) Y
# R+ J X$ k% H* {- O1 }% j- L
" K! O6 o, A4 E4 Q! \ for i in range(12): + t" b; {0 p. t6 K' z7 S: t
7 g- U. ~# p( w; M/ _( o# o 3 b- o, X2 `, n
c=colorsys.hsv_to_rgb(h,1,1) 1 N4 h y8 }# B( C8 g- T9 u
( X% h. o( D! b* X( ?8 F1 G
: A; w* \5 y8 S* L. e0 H cl=colorsys.hsv_to_rgb(h+0.5,1,1) - h0 X* |4 n3 l ~, u2 n
. E7 T+ L/ G g3 I6 h5 G + g' I8 E8 e7 V% w! X b
t.pencolor(c)
7 s% Y% |& U! `+ W & m- O3 K/ T8 ?% W
3 }7 f* ^1 E+ v, g
aaa_coder(280,i*30,c,cl)
! ]2 s8 o) h1 k2 J
1 Q y2 P9 b, E% K% i7 |+ Z
, O( Q& y8 ?$ d+ n. G# G& j h+=0.15
4 {9 _9 u& X( r
$ I: b7 x# O: g* A
/ i0 T. r/ Y0 d; c' M: p' R/ k t.ht()
8 p& S& k* Y6 A! z% a + u3 G) Y' J3 Y
: ^: [1 T: R* y' W* e tu.done()
% M- ~) `; ~* d% y& a! K/ T# h
5 \- I1 w9 v6 U % @/ `" s. \/ Y& v8 }- ~
# Z- E; U( t- I, q2 D9 y( K& P - Y0 y, I" [+ i- `4 s
: e: h# G3 c; Z
举报/反馈
6 ]/ V8 {2 M/ U; v 6 j/ q& K5 S" t& d" `; D
4 D" @9 [5 A0 k/ K7 L
) |0 `# H2 ~' y! Q# C' {- s7 r
o& W( n2 U2 |2 ~1 W- O
. z2 O8 U6 f4 @7 |* X+ ] |