. H ^( M: [- J: G% f! V4 w ! T% C" Q7 P- r2 \ T8 e& S+ W
e! Z9 J7 Z4 I! |9 }: `; _- g
. }- H Y) g9 s- z/ g9 s- k 01:39
" Q" R" x' i" [0 M
# K! P) w& ]6 g' V- u. [ * ~3 X$ d" ~2 ~ J( I9 N7 s6 U
9 ^1 Y. [( U6 v6 R' D4 f- j # b1 P! c! _2 Z( O) s0 j( F. w3 z( D
用python画漂亮的类似七巧板图形,源码解释如下:
9 T9 Y4 ~8 Q. B& T% w ~' `) X& @5 N2 v
- o. w+ r- a1 E9 l, Q6 [% C5 ~5 \, O
用python画漂亮的类似七巧板图形
/ y7 s4 U# g* e( p
, ^/ E- ~. ]1 u& }- Q
& Y2 Q% j1 @ J* H' }* M/ ] import turtle as tu 调用turtle库
' v* w% r* n# O/ z2 D. _" P% \
& ^0 {# x2 a) P Y- n) Y j
9 m0 C. E* Z+ w( Z import colorsys 调用颜色
5 m! x% c6 T+ c X1 a$ ^, r
3 e* a8 w: ]/ f/ [' Y
7 D9 i3 [" X' D( h- z4 F0 p$ H6 p tu.Screen().bgcolor("black") 设置背景颜色 - c& Z8 u2 e* |* \+ Z) {$ a. e$ n8 ]
U. N6 n0 t2 n& |" J8 q' n& ^
% Q! l- v1 J/ L) ] p# K% w
t=tu.Turtle() 设置t作为运行主体 * Z* [% E- i$ v% l2 F6 h9 R
* ]7 f" n9 ~8 n! N, n
6 @' d6 C- T) a h=0.3 设置色相
) c" F- m9 z. H 3 G2 U& l4 \& i) A! ?: D6 x
' V0 @* \! r6 A6 Q; G% Z; O( [3 }2 y" V
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 / Z3 R" o. O+ c( l% k7 C
# c& X; `+ C9 b. X7 V6 J0 C + \! c/ z% a1 E, \
t.seth(ang) 定义转向角度 ; S9 }1 ^1 ]8 x- h5 N t
" P+ ^$ F% T: t, N6 r $ z3 d7 s4 N% f. _7 F* B, K. a
t.fillcolor(cl) 填充颜色 ) ?* S2 g c# `4 |3 g
8 U+ Z8 X6 w' }5 ~/ V7 a. E- V& g$ | ( @( ]! w2 T) y) B! Y
t.begin_fill() 开始填充 u$ g4 l. o) z2 o/ w
6 r% P: X) ^! l# M4 n: t
' y" c* T# g" X) ?$ Y t.forward(len) 向前走len个长度 9 S* U4 @0 x5 k7 S3 Z2 g+ V
; M! h* ^- y9 W. {; p) c" n' J
" x' ^) A' y8 h J4 l
t.seth(60+ang) 旋转60+ang个度数 . h, N: |8 S* u# z/ W) E5 D7 U4 R6 y
, Z5 I' t# } Q$ M
2 d$ ?6 n' K ]' _# z5 P t.forward((73/200)*len) 向前走这个长度 8 w9 b! [$ F) [& G# b' `
/ p8 o5 d2 A9 F/ j$ h ; T: U5 l$ o1 \1 h W J
t.seth(150+ang) 旋转这个角度
& h( D' F0 }& C. H4 i( v: k2 G; ^ 4 {3 v- y7 ~5 z1 F
2 c; x, y% B- |7 S2 c" Z; o- o
t.forward((73/200)*len) 向前走这个长度 ! h- [4 E5 h, O2 k
0 b, Y+ L8 ^) j4 K & o2 f- r0 y1 b1 n% d
t.seth(210+ang) 旋转这个角度
: K; K# W( }2 c3 `6 O 2 h+ ?, `! b$ j! ~5 L
7 f- s4 r/ h1 ?
t.forward(len) 向前走len个长度 6 r4 H8 m- Q0 e- _. w0 V- y2 S
. q6 H% h, a% w1 G0 ~; @/ [8 r 2 P4 p. ~8 U1 e F; X
t.end_fill 结束填充
5 }8 i6 G/ } c: K: y% A6 | 5 \$ u/ D$ l5 d
0 _, J: q# D! w9 ~ b
t.fillcolor(c) 填充颜色 3 |# m$ {3 D& T8 w
9 A! I3 N9 s. ~* B' O! O2 P
- j A. c- N# E0 X/ }
t.begin_fill() 开始填充
- m" v& P; J8 D) a/ l7 H % j3 D# H8 d; k2 i z
; C* R4 d1 o$ J t.seth(ang+0.01) 旋转这个角度 : @- l' C' z6 W/ M0 _- ?
/ U- J, u" @7 z# t( i! X
* c$ a# E0 E7 p r
t.forward(len/2) 向前走这个长度 2 c8 j0 g6 g& f; ^8 P/ X
% O8 g% x! C0 `
! C" S; \8 C1 Z% q
t.circle((13/200)*len,180) 画圆 / d% Z$ b; X; |% W5 c
6 S V% E1 s6 _* E. y0 E+ D3 b" L
- S s8 S( O/ C5 y0 G( k1 U9 L8 ?$ Z t.seth(30+ang) 旋转角度 , g3 a; }' z! i; r
% U {* r. {% `, W V
. e6 F6 H# A6 {$ m% u% L7 Q9 O* w
t.circle((14/200)*len,180) 画圆 u" x! L* p1 o' g8 F4 D6 {+ w- R
. g. }$ ~, g- F' O s" h( q
7 r" }. t" k# N8 G/ z1 ?* l
t.forward(len/2) 向前走这个长度
4 g8 {' ?( ?: }0 b0 l
( X0 ~" m( p8 `7 o$ }/ o8 I- m 4 G# n6 ?) S$ v9 x" z
t.end_fill() 结束填充 5 f' S* P! y( L# v$ F! I$ F, w! {5 Q1 m
- w# l4 d# f9 ]
6 Z4 x+ M" v4 _( @6 I' o for i in range(12): 设置循环i 3 F. y. ^' I6 ~- A8 [8 ~
, ^; Q9 P7 P: Y$ ]) ?" K8 j
! u- o1 g: B8 l c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色
: e) n* ^7 J4 A
5 W- |4 }1 \ S& g$ R/ d; m " s8 `7 d7 M8 h( T- a; y' q
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
! e2 c4 u8 ?6 y2 n2 V. a & B4 W. \* b; v! M
( l% R+ p8 w9 T" b) `- V( b* Z+ E t.pencolor(c) 设置画笔颜色 - D8 p. Z, n5 c2 L, D
/ v1 N. i `8 T1 G. Z+ ~6 j 0 A1 ?5 b+ E8 W. C* j7 D
aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
9 D. E% M0 u7 S& M, _3 A
X$ x. N& f& ~/ M }+ M1 M+ c, f / m6 b" i/ f, G) K) D4 M
h+=0.15 设置色相
1 g4 \0 {) Q$ S# O; X/ u) F' l5 L! K
6 ?. I0 b* j; K2 Q % |% C" w# V; l
t.ht() 隐藏画图
2 u8 ^: o( Z. S% s d- L7 A/ ~7 ^* R1 d 7 K+ r g; G$ `, K& B
Z1 T# _6 v* c% W tu.done() 结束 4 o- I* e/ l2 K4 d
6 _7 P2 j5 E/ j, x# i k c
' ~, s- ]9 b' r. C s4 n 1 x! u& D# E' x8 o( J
! T9 I: r' C/ n/ }, d" @$ }
7 k0 r, z# h/ t$ y# l
源码如下:
- ^7 n# o8 Z- K' \
! F F* p+ v7 g4 }6 a + J. p- L# Z. M% e% ^6 O% X |
import turtle as tu 7 q3 [( Q! e! y9 Q% I8 a
. s, Q" e& K' t3 Q+ C( P1 g: u 7 ?# ^- x* u2 `
import colorsys ; D: b2 j/ m5 W& k6 x9 y
/ C" e6 A( U. J" L
& S( J- ?# w$ L' |. s( _ tu.Screen().bgcolor("black")
% D6 h+ \5 n1 P! o: Y
" n2 d7 ?$ e0 @2 s+ |0 N+ U4 F ! M3 ?" |* a( K8 T0 @. y
t=tu.Turtle() ; ?" J$ t4 x( f9 O
- E$ f5 F) g; l: v4 L* g/ t n
& {# H1 {% b7 |6 G) ? h=0.3
4 j6 s+ X/ \1 r& F F5 t " p, M y; r) K% k8 I, v6 {) x
$ o' B' ]$ W( s. A( T8 y! {6 |2 ]
def aaa_coder(len,ang=0,cl="#000000",c="black"): 1 l u8 q4 q1 i; N6 G
8 |7 @, q; _+ k: s& M' P! ~
( l4 K# p( K( e3 T t.seth(ang) % z/ l6 c& j" O# g6 Y* m
; N8 Z+ s! {3 k: z8 D; B% z5 l" j. p+ L
6 b1 I, U( n. S, O+ {$ n2 w4 Z
t.fillcolor(cl) 1 l+ R1 ~' R4 w5 T: m2 L
' u9 l$ m9 b4 N: r8 v5 M: Y
9 |* t1 z n% Q+ ~5 W) q# x t.begin_fill() 0 P5 b# ^* q" u* N7 K
. u ?- x% {% L( |/ s+ J' k
) Z6 F2 i% [* b! ~" [ t.forward(len)
! }9 }7 y4 {& {! M
4 w3 h# u8 h0 v8 X
7 C5 i4 ]) W4 i6 b0 Z) d+ W" U t.seth(60+ang) 8 B8 c) w8 x3 [) y
* C) d8 ^$ o5 P$ {
+ B; a2 p) u' o2 @, j2 m1 Q# x t.forward((73/200)*len)
( ?1 G9 k3 D' @4 {! w4 G! h/ X
; q$ z8 S: A$ e- q$ l
) d# h2 f- X, d: d; y% T t.seth(150+ang)
5 m7 v' }, R4 e" H" ? 9 \1 O" p! {! c: j3 l
! k* L2 g, W- S* k6 P' i9 w% G
t.forward((73/200)*len)
1 d( }- p6 Y' e. ^: G: X " i8 _# `( `# d9 l( x @$ ? k
9 s/ U0 k3 K9 i7 o: L* Y' c
t.seth(210+ang)
* d1 V( E. P6 `9 s! T: B$ @' `+ `
6 @9 n9 W* Y# [ + H+ H( U: V; R
t.forward(len) % Q2 Z! K+ j& {' q. d) g/ r
' |& G8 i! A! c
6 r9 P+ j# O$ p7 ?9 w t.end_fill
$ m4 x) s- u+ a , x9 O: y! g/ p- ^
; O- I; K ^4 [) p: [, c1 M8 U G
t.fillcolor(c)
" ]( Q5 N1 H9 k. W, r6 N# |
& `% `# Q# }1 l2 `9 \! H( h( Q : M5 D# h$ T" j) N( d! T7 L) D
t.begin_fill() 2 o+ ? m4 q: J2 V1 `
8 g$ G1 f W X: b 8 I v5 u: B h' D, q( V5 Y3 l
t.seth(ang+0.01) ' m' f: Y6 o! ~
! l! s/ O" L% k; T+ }' W5 [ ?. i
( A+ V" B/ F& e4 v6 b0 ^# `
t.forward(len/2) - U a5 y6 f( Y/ H; ^
6 r+ I- X, T0 U" K6 J
0 G1 O7 E/ S2 X& S t.circle((13/200)*len,180)
Q" p8 H( ?& i. L & e3 n5 W2 Q+ l; ~% B9 G5 V
9 K7 K2 f c& t" E" d t.seth(30+ang) 9 V4 X+ l B1 ]8 G' M U! l0 N
6 N! i- e7 P/ M) h7 G# w. N2 z
# ~& W3 a& {; V' Q t.circle((14/200)*len,180)
. Q1 f$ N6 p. w0 O! O7 {: S 7 |4 P9 m; h1 D6 c
) {+ @% i* R( _* K* Q, U( q; s) U! X' I t.forward(len/2)
3 e. P% j# L5 ?- \* @" J- G0 B 6 A& D" `- d9 u- u
2 l6 `' N# V$ j* v% z t.end_fill()
7 D4 x+ E; I; \3 i 7 F1 K; m' P6 y& H# n) O( t5 P" B
5 F" @; M1 l" {8 D( g+ Q: ]
for i in range(12):
( B1 D4 c; |4 u. s* G& L 2 }& w3 |: W& v5 G3 ]' T+ t9 c5 d
; Q' o+ x! \$ |% c( b1 D+ ?! Z
c=colorsys.hsv_to_rgb(h,1,1)
) e6 x% F' [' e: e- j 1 h3 |4 p1 }2 O ^* P0 L8 |
6 |8 T; v. k. |, X cl=colorsys.hsv_to_rgb(h+0.5,1,1)
% \% |5 D) p$ z( s, c- e , r5 [9 ]* z5 o$ k$ `2 N/ z. k
+ O8 a, d. u( I7 U+ E% @; ~8 g8 N t.pencolor(c) 1 R6 e+ y5 D m. Q% z9 b
9 C& ~- }- H% s# t
* X I3 i# |/ ?8 v4 Q9 M3 u' g
aaa_coder(280,i*30,c,cl) # t. y6 t! U) v/ l8 L
) i* w, E4 ]) t5 [6 A
: s6 b/ ^6 b' S5 Z4 G
h+=0.15
_- Y; Z3 n5 @ 2 u2 e5 D# i: c. p0 n9 n
. C5 X5 k# ~1 ?. k/ h# I1 m t.ht() . j9 t& g9 E+ q* N4 f) g9 t, g
3 ]$ Q0 C `1 J) s . |( A; L9 _& `
tu.done()
) S/ `; d- {* Z7 ` _% | 6 N0 {. [) ^3 }6 \
/ a! @0 e. Q4 X
2 F( j- T( M6 a% x( {) x
4 w5 Z# U7 `# W! ^. w1 `
# K" o4 @" c1 E$ X) @
举报/反馈
" K. h6 e3 F; b % F/ _3 w; f; G* [
& G) g/ P; t, b, `
3 F5 \* i) ]* i# b2 x" d5 n6 M, C
. K8 {" r' Z# a& F2 G. t/ z8 x
: @8 c i7 H/ {1 m2 U |