) N2 s+ _! g5 s7 c 9 L* a6 v9 I4 y; H% ~
3 d0 ~, m) C/ u V
$ H- ?" d- i8 [- i; S 01:39
) g! E- D& ]* n . C9 d. U) i1 t' H1 g
* `- M# c- p- F8 d+ [ 5 D: u9 B' T$ i. S
+ {) V: A6 i c* j* W, S7 B
用python画漂亮的类似七巧板图形,源码解释如下:
1 H. E/ o/ i* Z
$ V$ }( ^: z1 @
! l* Y/ [1 P) ~7 v8 o2 j9 Z$ ] 用python画漂亮的类似七巧板图形
5 l7 `1 [7 V+ k" v: U
/ o9 Q. U" F6 D7 o0 B5 _$ ~
: @8 n8 G" e% \5 U2 L" { import turtle as tu 调用turtle库
, k1 q9 ^# p3 F p: F' c
% {( X: L4 F+ S7 J8 }1 o ( p& T5 {$ c U& T& l
import colorsys 调用颜色 $ ~; T" j2 d% y0 A; I# l9 l: F' J& Q: c1 Y
2 U5 y, X _& a; U% v2 \
( M U! X& c6 ^0 H/ M8 h) e tu.Screen().bgcolor("black") 设置背景颜色 - z Z7 w8 l. _9 B) [1 Z6 f& b
# K0 u: z3 F* F3 a' L
5 `0 q% t1 R8 L" g t=tu.Turtle() 设置t作为运行主体 6 U9 O, T) A9 J( o2 s7 \* a6 m/ o' H2 Z8 T
" G/ J" E' z6 Q% e 7 {, ~2 i# P- f! e5 i- N& @
h=0.3 设置色相
; H% F) p; e0 X: n. b, S. G$ ?% v W 2 h2 {( ?' B, l% L2 F% J5 `* O
6 \+ R4 r3 s7 ^# v def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 ' Q/ K' c% b" v8 A
5 V1 {+ k6 n) I+ ?; l6 p1 l
1 [9 J! s5 S1 l6 v
t.seth(ang) 定义转向角度
: @0 }! @% \$ F8 \8 x& V/ h% e2 V6 f
, Z2 L: K3 E4 M; _ 5 \5 `. F+ ]7 V, \! [, @/ `& b
t.fillcolor(cl) 填充颜色 ; f) ~ u+ |) ^9 I& X* G
: H7 n. o5 A/ D2 b3 K9 @8 E
8 [+ S* c, g2 k# e t.begin_fill() 开始填充
/ s+ e$ ` t& L) M4 n, t , J1 \5 i3 L+ B A! [, @. x" ]- ~
6 k+ ~( o5 C- w: c8 T, }6 C
t.forward(len) 向前走len个长度
% U; E' G! G. O' E# ]# W
6 ]" r% d( T0 U% Q 8 K$ m3 p$ z6 {9 a+ ?9 t e, k' x# r
t.seth(60+ang) 旋转60+ang个度数
' ^! D6 e2 U3 ]" v+ [ ) {- v% y6 B% f4 _) N
$ O$ u) }7 ~5 h. ^9 V }
t.forward((73/200)*len) 向前走这个长度 8 _/ ]8 ?* V( F3 {$ t. g
; R! @6 ^3 X. n
# K, s" [3 T' F0 R
t.seth(150+ang) 旋转这个角度 : H; H8 H, M7 J) k" T! F3 _; ~! h+ _
# O% j+ I1 h* q' }9 ]
: Y7 x# P/ z, n/ W# b t.forward((73/200)*len) 向前走这个长度 & D; c% g5 q a' q, c* Y& z
8 {8 G. [$ V$ X9 g0 ~$ v+ e
$ Q7 ~# z0 O7 }7 J& [. U3 h- t. F t.seth(210+ang) 旋转这个角度 ( T- d& q- M* e0 r. ]
0 I: x) h1 X& H2 o: Y
( B( i. F8 M- _: t/ z t.forward(len) 向前走len个长度 1 K9 }# ?) \7 f* S# ]- r: @9 _
4 N7 \2 p+ F$ g# V9 W7 w& O$ V4 O
! Q, ]& X/ N3 H% E. ` t.end_fill 结束填充 " s) X1 |1 a/ h) g
' `& J3 I; u2 z! J; c# G) Z) b
; w' n9 P0 h# i+ o. Q# w8 Z( V3 G t.fillcolor(c) 填充颜色
6 {- t" ?) p3 `/ F X; W+ J6 e& n# z 9 V( g8 I" a5 V; ~
% r- }% G1 \, K( }' u/ E
t.begin_fill() 开始填充
( ]1 r* A7 q- {% e/ a7 e5 @
" K( r5 [7 \9 s# K+ r# f) j : ~* w* Z' Q; w
t.seth(ang+0.01) 旋转这个角度
5 z' u# G) n- l- c( ] # a- r" _. |* i$ ~3 x
! l( t+ o. ]# M. {+ i6 g. O
t.forward(len/2) 向前走这个长度
3 f9 O3 L$ N+ j5 h 1 R6 |& T# I, k$ F5 `
' J, y1 a' G+ y5 m, p/ E3 K
t.circle((13/200)*len,180) 画圆 ( B% u- T* A6 Q9 k
- J. t2 h. ]5 Q1 a9 `
N. H7 S |# K5 m2 [8 n2 G t.seth(30+ang) 旋转角度 / X( D: M, w' n- H- D
+ C' h, B1 O% r- a
7 |3 Q% F; X ?1 _
t.circle((14/200)*len,180) 画圆
! t5 E& t* N j" f7 A
1 _, B/ r J ^; @* t5 N + F1 m& p0 T% N) [6 X0 a T8 n
t.forward(len/2) 向前走这个长度
0 T/ j4 M2 }) h% F- O
7 a& V4 K1 \; }5 ?# b6 A
# x+ p4 Q' U8 I- A/ y5 G) h' U. d t.end_fill() 结束填充
+ z$ U" N" z' g& y0 Y& O
! K+ b, N0 y6 x4 [
) K7 ~: V! `1 @% S* ?1 ^ for i in range(12): 设置循环i
5 s) L4 V+ g2 A" _7 r$ D7 L! M p
! i8 i1 ~2 f9 O3 a: H# K0 X+ D 3 ?' ?. t9 q9 W0 q
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 & {9 i5 Z3 ~7 X$ K: f( i1 D
: l" V( G% G0 |. D
: m# {: h) H8 }8 z cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
, g1 z/ b) k1 N3 [3 W* ?' [& r
: B) A2 I* j0 B! H7 s# e # g+ ]# }# c4 G
t.pencolor(c) 设置画笔颜色
# Z+ c9 r; x- C- h: z ; C7 ^' h# l3 c2 l6 S) X
# G* G. R3 l% u aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数 ( f4 @ I' |! L8 A0 `6 J o7 Q
! C3 S }; i& t, e# V; Y
$ Y4 ~4 F% I7 _" k h+=0.15 设置色相
2 Y7 {. J! T1 ^7 O ' t4 M, T ~1 [' Y
" L" J3 c5 j& g: P% q; r N+ @ t.ht() 隐藏画图
S3 L) @* {% m8 y& L % B$ E$ E; |( {
* R- f# D/ c8 I, J2 @) A& A tu.done() 结束
! {2 Q% f* v& ~0 h 8 C7 G0 _% L/ b3 Z0 w* P
$ Q3 Z5 y8 B8 e) n, g7 P * Y& C5 a7 z# ^1 ?3 K2 l, q6 Y
: }# b" R( _, Z* M# K# B$ q* s
5 D1 X2 l+ X" {# Q$ t! e; u+ t9 F 源码如下:
4 ~1 P' g5 C8 J, ~, h ; K" A1 o/ S$ X* j! K
* X3 u$ G t/ B( N7 W1 u import turtle as tu
# c% X1 Z6 R: n* V2 U" ^( x, H # `" \7 e7 T1 {8 {( r3 z
0 c( z$ ?3 z9 C6 H) |
import colorsys # v8 `8 r# H8 m/ C
/ o0 T) x$ e+ s O" P
; |$ p# o* I' @ tu.Screen().bgcolor("black") 8 Q* R" _* {9 u2 d! s8 z' x( r4 |4 S4 x, `& j
/ v! Y7 ~0 r/ g# D( A
/ |- g9 V4 i/ x3 z
t=tu.Turtle() + l& i7 m9 d! g6 t6 f8 `& V/ ^$ r
$ L. I# ^2 S) {* v7 [' x
4 V& ~2 ?6 w0 [2 h5 U h=0.3
; B9 w+ h$ d$ R; R( k% F 2 K b" x/ q& l1 K0 T3 \7 I
$ w1 S/ M! X/ d: |' B
def aaa_coder(len,ang=0,cl="#000000",c="black"):
0 ?$ o: R; y9 g5 |2 ]7 g
9 p" U$ C, k% E. Y( z
2 C' \ N U1 ~- A6 v t.seth(ang) . K* D' U( C# \1 x5 t6 P
' y, n9 A f0 L6 p2 I
1 ]$ _9 ^; C9 K/ @ t.fillcolor(cl)
4 {' L& U1 V8 I& O# S$ O+ f w : `% j( p v9 }7 c O$ S5 y
0 T( @% w' J, d. j( T% F
t.begin_fill()
' _1 j4 p2 G5 M2 A1 e9 z2 N& ]) S
& t. D3 N6 @0 J: z3 x9 e
+ d& a' p7 k3 x: q' Z% I8 n t.forward(len)
0 h9 Y' u7 P5 D6 |" w4 x! G
- a( S2 d- z `! F) C, O0 j1 X W* ?6 L8 U, J) ^# C8 ~' E, J* G
t.seth(60+ang)
- J% V' w6 `8 \/ d! p" b 7 b7 Y6 e& }5 b$ X
5 X2 ?9 a% Z6 F4 n- {. P6 J3 B" ~8 I
t.forward((73/200)*len)
8 ]$ n; `; d1 ?5 a
6 @9 X2 i+ O3 X |4 `# A7 b7 T/ [0 n5 A" ~5 q; c
t.seth(150+ang) $ ^7 u) G! J6 I6 L: \3 r9 U
, C# _" ]' d- S1 }9 O
% D7 ]3 h" J- ^+ ~: X
t.forward((73/200)*len)
: {/ Z+ b$ ]. P6 h8 {
. B7 i; y, _$ P $ b5 W( j. B$ S+ ^
t.seth(210+ang)
2 j6 X0 g0 l! Q
. n4 \) O( I% }' j* R
* D% H$ b" ?8 U' W t.forward(len) R) m* I7 t0 ?: F% q4 `1 B' _9 d& r
; O) O9 v) a3 ?- e0 L; ^ g" a : m0 P" b, C _1 {3 ~3 P5 S+ N
t.end_fill
" @* ~. ]3 q4 @! C/ n
5 v3 D5 h9 P' K$ F2 _' Y
2 T4 X) ? i" h t.fillcolor(c)
- O% }+ O! h. W4 y% {7 j ) k8 j6 v j4 G# A
8 k) B5 u: o3 [- B# |- t t.begin_fill() 3 v# H6 \5 P9 W* N U$ U, r
) o4 o% Q* I6 s! l7 k
' r/ m, ?- i0 e4 A6 x t.seth(ang+0.01)
& n3 C) \! Y* N " h5 a6 y) \* n6 X9 {
$ V% ~, p) l! R3 u8 n( c, H t.forward(len/2)
- f( G# e8 g7 ~, Y# z8 a " Q" A- r* _; y
- b2 k5 }5 Z W1 Y) K ~5 M7 T( N" ]
t.circle((13/200)*len,180) 4 {/ }7 o/ ^$ A- f9 y
. M7 q$ p* ~7 ]$ B) y I
3 l9 U n# O; ^) j5 r7 ?* L t.seth(30+ang) % @: y9 y; R3 f) j$ z N
& ~6 w; @+ }) [1 S! B9 i9 M* j8 E ( J5 O: X; Q" Z( ?/ D# l0 B
t.circle((14/200)*len,180) 1 ]5 i; ~3 T- Z4 {9 O; B
! b( l" p9 l8 A' Z! J
. [6 ?% Y4 x3 @3 {- T) v
t.forward(len/2) : T [0 ~; O6 w1 r0 \$ h& h: i& Q, m
* H2 E+ g6 W, v; h! r
9 {: k" P5 W' W1 ? t.end_fill() ) }% d. f0 s6 N/ F2 R
' _4 u7 C% m1 ?) M) E
v: S! e- l' j: _ for i in range(12):
Q- b% w$ n, c, L
' e1 L7 H9 [5 i- r) A9 ?/ ] T$ }1 G; w: e8 u( Y
c=colorsys.hsv_to_rgb(h,1,1) / Z* q5 \( L: p+ ^6 @
6 [* N a) B& a+ W
- B* i3 F3 R- P& l1 g cl=colorsys.hsv_to_rgb(h+0.5,1,1)
# ?1 w8 q; ]2 x! t4 { 5 f: Z3 `1 p* }: w( Y" @, b% i
9 J$ m- i' v L9 @ t.pencolor(c) % _$ J0 C! }8 c. D% Y
t$ p9 n$ O0 X3 V4 c
3 p+ n9 S; E- o6 r/ } aaa_coder(280,i*30,c,cl)
' {6 o" `6 x3 v/ h) ~* }* F - s( f7 r+ v3 n* I% G
; o) v' O7 L( j8 [1 v
h+=0.15
- S* w1 I3 C; B5 _/ }, C : [0 N7 ^) J4 u% B: R5 h' ? f
9 s! d6 p8 |5 `+ l& B& K' n
t.ht()
1 b1 P) Q) ]& N 6 D4 l8 a" X1 ^1 ?3 m- J) `
# r0 s+ `* i% H; `; b* T4 L
tu.done() ' @) c# w, {( [6 _3 D# O
( w ^4 b# N; z
9 z3 y0 o D* u% U% A( g 5 Q0 p5 K8 U+ L; D" _* R
4 [4 Y J! h: a) H5 y # B. o4 c5 `" c5 S
举报/反馈
. B" j, ]- ] Q
7 E) V. a/ A9 p! \( Z, e7 p( i3 p p# k( h/ ]7 x: N8 U" m/ y
- X! h% P* D% G3 b6 W3 g( T: M3 X
% g7 |% U6 {" R' g$ L4 }" W0 n$ x3 P* D
5 w: g9 |0 B% C/ P' O |