" M: b( `! t3 Q5 [6 G- Q
w& G6 N4 h- H& r& f
0 g* l; r3 H7 K* y8 T4 U + Q' \, H7 T. h' Z
01:39 . F: j* w$ r' a# G: n7 L
% [2 y) U+ J2 I0 c3 l) M / ?+ V/ ]7 _2 n8 b. [
; I+ A) P6 ?1 r0 h: e6 f" z) m, ?
/ T7 {0 G6 i7 E5 _4 i 用python画漂亮的类似七巧板图形,源码解释如下:
, p& |- P7 H. O& `/ _! x; v, v , A+ @: U+ L: L
+ d1 W& \' v- [ 用python画漂亮的类似七巧板图形
3 V' K& c+ r+ }; c N1 o; n; Q ! J' o- v5 c5 B+ k6 [/ R
8 v. D: U, y: _, U s
import turtle as tu 调用turtle库 6 b* ~$ P$ \ ]) x& L9 e; D# o- x% f0 R
% u9 M$ G# w1 r3 \/ e7 F
" n( b+ E- I2 R; R2 A8 t d5 y& F/ F import colorsys 调用颜色 ) x9 ^9 F1 }$ Q+ ~* ?( M6 {) A. Y
, t9 {6 T; @% f, `& M. E P" ?
i1 _/ a4 ?8 e: i# Q tu.Screen().bgcolor("black") 设置背景颜色 ! |8 v$ D, a6 p
$ D* Q) ?; A3 k+ R, s ! `7 k/ G0 ~0 K2 n! j- d/ _
t=tu.Turtle() 设置t作为运行主体
5 J- i* r K% N. {2 ^2 H- v1 q$ W! M 7 D! X) p& b4 t8 A1 U
& [; e. W' L* V h=0.3 设置色相 / g8 E6 M, A$ l2 J
+ ]- H& |5 ]: n- k' u
- K' d, ]) r) T8 F6 \4 r5 r
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数
4 o; H# O8 L; }. V Y: o" n6 M2 o
0 e8 B, X4 j! ^- c: q6 Q1 ~
) G8 j+ A: ^) U& m; v( [% v7 f ] t.seth(ang) 定义转向角度 ! @& y( C+ W% s4 o5 m9 C
1 f' s5 y4 _, O$ A2 y ( J# Z, p% `1 ?
t.fillcolor(cl) 填充颜色 ' l( O% R5 o# O L2 |
! O1 q, o5 N& U U% G" P
' G- @0 d$ q% C$ | t.begin_fill() 开始填充 2 @4 p' X8 t. {- ^$ f3 n) \+ p
# v* R5 ^8 j4 a% [4 S- {* q
6 u( @* k0 D& Y' F5 u
t.forward(len) 向前走len个长度 " s9 N2 E3 ~2 p/ D
6 m6 v; c0 G5 @, o+ o q7 A
4 ` e/ G( z9 {, M3 K) X: x t.seth(60+ang) 旋转60+ang个度数
0 a% }8 w2 F: {0 u$ _5 M
$ o+ U. O* Z$ K
Y% P* d: i& c0 E6 y t.forward((73/200)*len) 向前走这个长度
9 d0 a3 O0 e4 t N) s5 U9 S! @( ^3 Z1 b n
4 C% w1 H& p! e) m9 T4 Q7 V. z
t.seth(150+ang) 旋转这个角度
( t' j4 v6 f$ _5 H) Z+ y
, x4 S8 O8 T" j+ c' K. R( N @
2 c2 O' R) k% C) P2 p2 w0 L t.forward((73/200)*len) 向前走这个长度
. P+ ^( z; o7 N9 n/ ]
+ t- z0 d0 j9 r; | . P2 s! N4 u7 L' F
t.seth(210+ang) 旋转这个角度 ; Y8 H3 ~! C! ~9 o8 U0 Q
5 X6 e2 G5 q6 k8 d" w
* \ Y) j+ e. b t.forward(len) 向前走len个长度
( C2 ?& ^) ~% d: U4 b( _% \ 6 v3 l- L N6 w u C0 L1 L. N1 `
+ Q+ H; ~# C- P3 z/ L @
t.end_fill 结束填充
4 q- M4 r- E! P- N1 S
+ ~3 i4 c" p: ~9 [
9 d& t" @! X! h# f- s+ [3 V9 ~ t.fillcolor(c) 填充颜色
2 D; M: z/ k1 F& V; ~0 m$ C
3 J) Q5 p# n" N) H* V# x 3 ?4 g3 a0 \; w
t.begin_fill() 开始填充 1 Z, N1 A* j) K- }& S
8 I* k: ~$ Q1 F: _
4 ^7 _0 S# ?0 D) t t.seth(ang+0.01) 旋转这个角度 1 H7 q! I- C) U5 n
* O% I+ V1 ?8 \! J+ I: D- A9 l2 C) U7 u
9 a8 T" i1 f% Q" h4 t
t.forward(len/2) 向前走这个长度 6 d' `& E9 [6 i
0 Z* @: e$ I" ^
1 y' ?9 P& P8 ?! _* Y! g& [6 e t.circle((13/200)*len,180) 画圆 a% }8 T! b: b0 x
8 X8 u% x8 N: J8 g- y% ?. G4 s
: C: \5 D% _" f8 _4 N
t.seth(30+ang) 旋转角度
1 R. O) V8 C9 ^& i5 X, E + g* K" { @) n; A% l Z, M
% B6 Z! n6 n; Z* v t.circle((14/200)*len,180) 画圆
, J7 ~5 _( Q7 U5 C7 A/ P# Z" d 0 [( a4 F4 I) r+ t. J8 x6 Z
' b$ _6 I9 S% M' m1 C
t.forward(len/2) 向前走这个长度
# C$ e4 D8 m* W& z# Z: s% J ] 2 G# l5 I) ~4 N4 S' q& e, { M
+ m2 o( x4 E! o6 e, x: D
t.end_fill() 结束填充 # I& N" C# ?) M8 W; d9 i7 q
& |1 I2 `/ Y2 Y: w9 W1 O O , k: k; [- l8 {. b4 v3 o, ]/ t! N
for i in range(12): 设置循环i
# k) i! l) x- i. ~6 ? ) q0 d+ Z4 \* D! j7 P1 w
1 O; r7 m: V2 F: M# R( J$ O' j c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 2 K$ R( N( J! [# e: D0 L6 F2 ^
1 H1 y& k) D K5 M: G
, E* b2 M1 _' X6 I8 ]0 r& D. w. R7 b cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
! [+ E9 p4 r- P' C ) c9 \/ C, \+ g' C X" `
/ Q. A3 P& ^& K; m" R* N" d @% h
t.pencolor(c) 设置画笔颜色 + ?* m4 Z% F* h& l" I
& Z! ^8 Z0 r3 r1 p5 p0 ~0 A 2 p! S$ n+ T) {* @# I/ q `
aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数 ' t; S8 n4 y& a4 v0 _# ~
9 R* Q5 t1 p: n% M: A& Z, v
/ Y1 b/ o+ C, d r! b7 y, Q7 y
h+=0.15 设置色相
1 G2 I9 X4 V& {" @/ K
0 [6 t+ w f0 \% D- j1 Z
6 H# d0 b' D7 x t.ht() 隐藏画图 4 H% d. y3 D& L2 L, y
, J) q& Y: R. P) O7 S6 M+ f; |& C
+ O4 O4 L; Y& h7 R, i: c tu.done() 结束
5 M4 `5 F! p! G- }$ }
- Y- A0 X+ q0 M" n) t
$ h) a( p) T/ d- \5 d: I
6 ~/ t7 P9 S- S! `/ R U
8 _0 T" A7 q& s4 P
* ]+ c4 E$ k& D, a 源码如下: 1 f" l k, r' W2 ~2 J9 p
7 o4 q) f8 U6 R6 U7 z & ~9 z3 r/ T" C. @8 t
import turtle as tu
% v& N' u) i, ?) n* h; C) v # F6 k" _: P9 M* d; E& h( ?
7 D3 l1 j) T/ o* F( X
import colorsys W/ ?: E# b! ^2 m4 W: l% w
/ r( I7 G2 x; V2 B7 s
# x# U- j1 ?% q3 p& B tu.Screen().bgcolor("black")
9 r% I. [: O9 Z% L$ \* I7 \/ [
0 j- @! [( b3 L6 j1 [; Q& S
2 X- {% Y; ^: W, z( @ t=tu.Turtle() 2 t: _- W# g- u. b- G
& r O0 Y1 o) }6 ~6 [+ b " }5 ]5 v/ s K _6 l2 F
h=0.3
1 J0 s$ _2 I$ d( T
+ P* ?' K( E# U
1 ?: b6 m7 `: [ def aaa_coder(len,ang=0,cl="#000000",c="black"): 8 v" J; L9 m' z& R6 Y
5 f/ z6 \4 H% b- g" n* F: I4 v
. ?# _ ^3 W" u+ x! q" s0 E t.seth(ang) ! j) \& `1 \1 I1 y4 {7 ]4 o( c. d
8 {7 I* ] S U8 {3 L) P% k " K5 B5 ^ A" @. }# l( R( W
t.fillcolor(cl)
: D6 K' A' [2 x& b
; A- ^2 j2 o, a* V6 A 4 F/ h) W# A( {& l& Z% c/ e, Z" j
t.begin_fill()
; I3 g, Y9 b: v; Q
/ a5 w) P* B- u" J1 t
- d+ _7 g' k p" [* Z$ `* [( u6 i t.forward(len)
7 p2 [# g0 g0 {2 M& a8 n' U6 N
4 k; C# F$ b% e+ b- e: ` : G1 i8 b) {9 I/ k' j7 D
t.seth(60+ang)
& r9 w! L0 j+ r1 i3 v, R# N
# z- o* s# \2 Y4 H4 F1 ^
0 ]4 }0 X; h4 L( ?5 B1 X- V( ] t.forward((73/200)*len) 6 u' y7 K# j. p2 G% y
, @1 o6 t* F* V8 K3 T% n. A
& `* o/ a/ Z1 p# y t.seth(150+ang) 4 f, T' o% f8 ~ x. ~* s
9 W9 O" ~/ ?9 d, K/ u" m' z
8 e, h ?) }& w3 A0 X7 B t.forward((73/200)*len)
+ n6 H; d& @0 b3 Z5 A1 w . @' ], F6 u, k; Z. p
# D! o# s, V, {2 d/ G& K( j8 M
t.seth(210+ang) - x0 r4 ?9 l. P- A9 `6 H4 l% L( a
3 V" [9 J' [/ X) g* X! B: u
9 `3 T+ t& Z" w F5 B. Y
t.forward(len)
* | L" g( A( k- d6 \+ j
+ ~- a2 m7 r' _. x, ^
/ }' \" U7 }6 }! k4 y t.end_fill
+ V' R2 n3 O5 B2 P
% V5 A/ P. f4 ?, j v$ P8 I$ B
) q# O, [* Z/ M* {7 Y+ C0 b t.fillcolor(c) ; X/ Z Y9 W$ l3 K
) A. O$ J) y Y , J1 \0 i! U0 A+ T
t.begin_fill() ) h5 _8 r& ^4 _3 ]% F/ [* g( P( T+ b
% u% G0 F* W G! F : ^$ a" r0 c5 j! Z2 V3 Q
t.seth(ang+0.01) * k" W$ q0 [, F! u: A, b. ~! `
# W" O+ w* Z: p; \
& @; c8 Q) s& f1 k9 H; n9 A t.forward(len/2)
8 q0 B" H8 q1 V0 j; T 0 J# e7 d" q+ Y7 u
3 x' C8 d# q# x' _ t.circle((13/200)*len,180)
$ W$ V2 [$ w- L/ a* i5 V
8 E# w5 W3 V3 f# W2 X 9 f& o5 @; X. \& t
t.seth(30+ang)
; U/ h: f- H8 R- c* e3 f5 h + l) J& B5 S4 `
. V9 c4 J5 I5 G* N# v t.circle((14/200)*len,180)
. ^. r: h' ^. z; j0 f+ x0 t
: i+ b1 l0 K" {6 c2 Y
0 X' o, B8 U6 m* H# \1 A t.forward(len/2) * X) s$ M* c+ Q' S
8 A9 J. l1 z m3 b/ M: b
" H4 R8 Z& d+ ~6 M t.end_fill() $ c3 j" ?& ~' x+ ?3 s* p! Q; P4 l
5 L, C/ i5 a4 Y8 L+ N x1 W* B
' m: S, |0 V) | for i in range(12):
( k0 c9 u3 j- S# _7 a# V
3 s0 Z% v1 L5 G/ X4 w o
1 Z% D( a( K: R c=colorsys.hsv_to_rgb(h,1,1) / y9 n2 t/ M) ^& L9 m) x
' A0 i5 f, z$ q5 V " {0 G7 o$ Y4 w5 g& f1 b
cl=colorsys.hsv_to_rgb(h+0.5,1,1) ) l0 | [. c" r- J( r. R" G
& c, ^, k; k! n) y+ X$ {
4 ?) R3 S$ |, L
t.pencolor(c) % t9 f: u0 {# L' _: p
- S( q7 t# K& K6 t# L
* G$ B9 \7 A: v7 D9 u aaa_coder(280,i*30,c,cl) ( D: }8 d, T' ~) |
% |* a0 H+ W' t8 ~0 z/ u
7 t( \$ b( I) N, A$ l8 ? h+=0.15
% H+ _. A. u$ w7 G3 l 3 l, _- x2 s s3 \
, S1 b& R+ M; J$ b
t.ht()
8 ?" g- z" _9 ` 1 w" x w& t. U/ n: c( \
) \' X& P9 m. [' u
tu.done() - s4 \! B& K6 k# G) b% d5 r1 i7 ]
4 Y8 d& U% F4 c8 n7 b: i H) ]( U0 q/ A, G
& Y4 X8 E7 p; E) p4 d7 U
% |0 b- o8 C9 J) K
# j* C7 g, S" M w( d+ R& H; g 举报/反馈
: W; j$ {& h+ ~ M- C% J: C 4 Q; K) S5 }; y/ ~# `
6 G) f7 ~& F" P8 n4 H5 [
, [- ?8 N/ a7 a+ w ^3 f5 f
- j! p: ]8 T: G) x7 U$ x& d! f
* T1 \/ B! o- w" _ |