- l. N% u3 N/ c
, S/ h v; i' o! p 4 q; o: }& B" @' s, ?
4 y+ K9 W8 [7 D$ j 01:39
6 P7 b7 z& T8 b
/ x& j; a P+ x
9 b/ g% z Z: c$ A
3 @& w4 X# J6 \) x9 {# j. l ) X& b# e8 A7 z4 K8 q
用python画漂亮的类似七巧板图形,源码解释如下:
( G/ h" H1 y, D/ { l 7 m% _. |) p" J0 R6 c
m; R$ r! i9 \8 |& p 用python画漂亮的类似七巧板图形
0 i+ ~) j; J1 F9 f- J2 c2 [
; ?. F9 l6 z2 X' ]7 X/ v6 V
) r/ S) T2 L$ K( p import turtle as tu 调用turtle库
8 w' Y! a3 ^( ^ + P, E' Y/ c! J9 m+ a% v
9 x+ Z9 G% m, p, h& F' s- m
import colorsys 调用颜色
; k) Z p5 t- {# j! F+ ^! \
; P q' j! o3 c8 J- A 6 A$ L+ H* c w0 C. z
tu.Screen().bgcolor("black") 设置背景颜色 - R A5 H% q0 Q" G8 Z: b; e
$ D t3 `) a' E
" q( G. w6 r/ m t=tu.Turtle() 设置t作为运行主体
- U0 m5 b& ] [3 z4 p5 ^- Y
6 c( n" L, ?8 S5 q / Q: x8 J" a$ Z% M2 g
h=0.3 设置色相 " |5 s: A6 _% y4 `' \
6 V3 W- c) m& s5 B3 M% z0 ^
% x t9 P* V/ d
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数
d3 T" K- U. F9 c6 [
: T' P8 I7 x c+ |$ @0 @
D% \! e0 K% p9 y( E t.seth(ang) 定义转向角度 " W& S; h2 ^$ j7 @2 T% ~* Z
) a/ d$ Y. R( T! C: U6 r6 n2 }% ]( c
* m7 N! @. l/ O3 }% s t.fillcolor(cl) 填充颜色
2 ^6 }9 c( M' S : Q3 t3 o& b! I% u1 [& I& Y- T) V
) I6 E3 |/ z d0 s$ `: j1 I) w
t.begin_fill() 开始填充
5 a9 C9 O% N) B' w) y6 E1 Y
* t. l t* i$ S7 W+ \2 X1 A8 e. J4 H
, O( s9 b; ^1 M: g' A; k1 d t.forward(len) 向前走len个长度 9 l0 I2 q8 r. o
- t, ^$ f, \) t- e0 n
) [4 u& W+ T( M, _
t.seth(60+ang) 旋转60+ang个度数
, l: D- M1 x$ w& H% f
2 z& w1 X7 @) b* @7 M! |. m
. A! `0 O% Y3 P/ h+ S t.forward((73/200)*len) 向前走这个长度
, C- s$ \# Q, s" o3 p
! ]4 B A/ P( J6 ]& T4 j% s
) ?% k3 [* V m1 n/ ] F+ E0 O. ~ t.seth(150+ang) 旋转这个角度 & s7 y3 n- t( o9 k1 }
0 s5 U8 o% U$ ?# R. P; h
+ |9 x, |5 {% \
t.forward((73/200)*len) 向前走这个长度 0 i8 N- G/ U! K: x+ `7 }1 ~' Y A1 H
2 H! _1 [; |% k0 u 9 O* A1 d. [' X. l8 s: v' F
t.seth(210+ang) 旋转这个角度 0 w( Q6 |* A8 ]% P4 j4 C
7 y. K" Z( k+ H9 l
$ V3 [$ d! z$ a t.forward(len) 向前走len个长度
9 Y) x( g+ I& z3 n 6 V: t3 d0 u% O$ A" m# E: T
, @. k% K/ v1 h1 c t.end_fill 结束填充 # N/ u& I, K( [
+ l2 B; ]) O) I: @* Z
+ @, y7 L4 p6 `0 q' K. d, X
t.fillcolor(c) 填充颜色
/ e- G& s8 P1 d! {5 P
& W2 k' v( {( n9 A, j5 B ' {+ ?" ]! \, Z. X- Z
t.begin_fill() 开始填充 4 {) R4 s" `+ q2 Q
7 Y/ R, q: N5 f2 }. _ 8 s9 y; B% i0 A+ I$ M
t.seth(ang+0.01) 旋转这个角度 ' f& C, D5 \" V
9 w$ E1 h# U% T$ Q& S& a: t: D
3 n2 p6 K8 h- o. G/ q9 o t.forward(len/2) 向前走这个长度
/ B; U) V9 W8 j8 v / ^# X5 T5 C0 G) v% y3 |
% C3 P& {+ H+ X: v- U$ n/ t
t.circle((13/200)*len,180) 画圆
( J, q" O! c2 F; n2 [4 q
* L) L" G( F+ C8 b. T+ x" d
0 @; t7 r3 C6 v1 c$ c t.seth(30+ang) 旋转角度
$ ^6 B$ v) K B) T, l( g8 `* ]8 [ # G7 a$ ~/ h# |# Q+ v; {
& t7 c3 g0 [1 i" Y- b! }, i
t.circle((14/200)*len,180) 画圆
4 I2 m/ H% u4 h, N- K; R; u
. l7 S9 t* H) h8 f; B" f* p 5 D4 A! r, _; d; k; d7 ^7 D
t.forward(len/2) 向前走这个长度
( e% J% \% B% T7 }! l % z# K- F: A7 A- ?4 |) u. x/ V. u# y! J
& ?5 z5 G" i! C( D5 Y0 N t.end_fill() 结束填充
/ ~+ @& w0 X9 A7 b" ` 8 x1 h3 K6 h% s% j' c1 N
; @, W7 u. {' j for i in range(12): 设置循环i
: Z' d! u( Q. I3 I7 f# U
2 G/ }# l! t' A; E5 h, ]* F
$ k% L- `* r$ v) N9 {2 ^ c c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色
* C* Y; O \+ Q
* j. j' [" g0 E, b; k. V e% C7 { * I8 I _4 M7 x. [2 p
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色 5 x) s) U$ A3 w
) |- U" ^# T# {2 b$ J. D & T) _6 O$ q% U! X
t.pencolor(c) 设置画笔颜色 & [' N9 J0 |$ u6 d9 d; D
+ G& g% N% z" [7 D& `3 k( O
" x8 q# T. Q9 V7 c6 Q aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数 4 G- ?% t4 ^0 R+ c% R+ T9 a) p7 o
" H+ ?. l/ ]. g* Q# k2 ?# P9 H
) Q) M8 V8 d; F# J, Z h+=0.15 设置色相 k& ?3 W, L8 r3 k4 k
8 e8 p; p7 b8 a! k
& A1 H! Y) \% k0 j. J t.ht() 隐藏画图 / o2 P$ f+ \$ J- C1 r- [: D
5 I& ?8 U: M' d0 @7 @ 7 ~- J6 Y* S: Y, U& g
tu.done() 结束 % H( F1 x5 @: b8 h/ i
& O5 \) \' x- l! U( Y
# y# Y) T8 o( ?8 i1 c# A7 T: t
; c+ W5 x4 h+ y5 I4 a2 @
* P$ \; L' F& d* P- ^ Z. J( X & ?) s0 s& J) _/ O {4 S* F! T
源码如下: & @+ V- a1 W; F2 |3 B' A
1 A# N% ^, j1 c" X
; K7 R/ m; ~" j" D; _8 F6 a+ N
import turtle as tu
6 R3 x2 _. ?8 a/ G- ^3 v- k+ ` % N- O, K4 I k
9 c% `6 `( t) Z' j' u
import colorsys
- b3 m& x& b: x : W6 T/ M) G2 H6 \9 f
: Y3 F/ F3 _; p$ U9 @( }$ g8 N. E
tu.Screen().bgcolor("black") / O+ z& x q; @4 k5 U& n
& i E) @/ ]# N6 l( w* ?5 Z7 U 9 U4 e8 s \- M8 ?
t=tu.Turtle()
6 x( U' o$ `4 |& Q4 Y " b# d0 d; H# E4 L+ Y7 w- z. z
, A9 v- s7 _9 P4 _ h=0.3
5 w8 ^( u7 S4 X/ [7 F9 ` e / A \6 i& z( P. e
. ]1 S$ j6 C# u5 w def aaa_coder(len,ang=0,cl="#000000",c="black"):
7 g: c% L% ^& B8 C0 u3 T
' t! I- P) Z9 p# \4 t) e5 G3 e $ k/ D: { d) [4 ?
t.seth(ang) , [/ j- h2 [% ?6 y9 L$ N+ C
) ?) C' k. z1 H% {
( J* J5 S5 o0 k, g1 S t.fillcolor(cl)
& j5 q! b) r& A+ a. J( _
/ W7 V8 y1 l3 l9 k& g& ~; z5 P - c: @; Q3 G. M+ G2 S/ m" V
t.begin_fill()
, e3 Z3 U3 H. L7 d( A! X
" D6 a; L, a7 h0 U: Q( P" C
4 x6 h# J, _, r8 M t.forward(len) 3 Y& S1 m( S# i( W' _
% d$ }* r+ x% m, N# y( M
$ ^ |: G$ o5 y6 |, h t.seth(60+ang) & r6 H' d5 R0 ^5 N2 \
8 e6 u; C3 e% h4 o
" M+ E* C) Y' k) z t.forward((73/200)*len) ( Q4 |9 y# y" r; K+ g: i
* T* X. w6 X% a
+ n; [0 D( Y' ~7 P8 f3 [ t.seth(150+ang)
. u6 T1 I) |3 [- ~. C1 h0 k- d K! z ! t |4 y+ w5 K/ a2 ^$ t
# V# P1 e! B% n" f* z t.forward((73/200)*len) # B2 G$ B* D3 v( u/ ]
" {' }. U9 i6 y# W/ W* ^ ( D( ~: H4 K4 Z& \) Z8 h1 t2 w5 f
t.seth(210+ang)
% K% K6 J e. F5 ]' R) T # i8 Y( R) b1 Q# f
7 Y! I1 M' g7 Z! d& ]8 v: P+ |
t.forward(len)
6 F. H+ Y: J( ~, F$ r
5 L; c" O: u* {2 {+ S0 F2 | B
8 o% F: s1 O4 N% i# M7 q/ L# } t.end_fill
/ M6 L2 N. N+ \" `& \9 a8 ] 1 ^( t. B- ^: P& D
/ g3 M0 _3 S) K8 M. f! i: P; X+ m t.fillcolor(c) , x) m) ^3 C; S$ Z. h
) v: X; x' ?* e8 G" Q
2 q( i6 O- L- U4 o3 c
t.begin_fill() / k0 u5 w t2 f. D% h
5 w4 T1 J) J8 K5 S0 t5 V1 N5 w! C
0 ^, @' b5 F3 q7 G t.seth(ang+0.01) - [) w, [: J1 e
" P4 C. [$ ]: j4 V: t2 P/ N6 c
6 n2 `1 K& h+ V" ?+ J4 Z0 I t.forward(len/2)
- x6 U1 x( s% M6 q1 e( y " A2 T/ l q- @, S) C
- x) U% Z+ }4 d+ T( S t.circle((13/200)*len,180) : [% B |; z7 c, ?5 }
/ u* F9 x/ ~! u " B- |( _" F" b0 ?! Y& K
t.seth(30+ang) % l$ w% i3 j* ~% ]$ k' d
' z2 K: i* a0 x) G
2 h; ]7 j/ S, o( M# D) m" i- x
t.circle((14/200)*len,180) % ~; [( X, {. a3 {
9 O5 b) @3 Q& ^" V7 F
8 z/ f4 W6 f: `# s# |, L
t.forward(len/2)
, r3 V* n6 v# S( a5 v# S R* _ 4 K/ ?4 A3 l$ o# @% y
( n0 s- t d x( Q+ C2 m t.end_fill()
3 u" D0 T3 p0 g' U/ T' i
; ]- U* k: q N! J' P : Y7 [! h& e1 q# J8 b+ m0 f2 D5 `) r* E
for i in range(12):
* V- L. R8 }6 k 5 N3 C4 Y& P) X) J% {2 L
8 U% j! }5 a+ \% n0 d% v% w c=colorsys.hsv_to_rgb(h,1,1)
$ a' N. Y" n' j) `/ n, ]
! G0 c" I3 ^% ]9 w4 A$ ` ' I3 {. Z6 G* v
cl=colorsys.hsv_to_rgb(h+0.5,1,1) ! f9 W' f7 b8 Z$ o2 n% Q
* q y! H1 r0 Z v& r. w+ i' b
9 Y/ O% V @( `! `+ J T" ] t.pencolor(c) & r- y! e9 |/ t+ U; U2 w
/ w5 \) A, n9 ]( }8 X! j
& j" H; @: P/ o) d aaa_coder(280,i*30,c,cl) ' ]8 _! e' F6 j
, \: a6 P6 C E0 o4 I
3 U1 _/ @& O; c" _& u; D# w9 \& } h+=0.15
. p) o6 p# V% H" [
' L: Y( m& C7 h, J, {9 H1 v i
+ f) y2 C; i( g2 E9 m/ j5 [ t.ht()
1 |9 Y |3 B4 R6 O 4 F" ^3 ?2 Q+ N
9 C( [7 Z; N# G [: i1 Y
tu.done()
8 ]. m L/ h/ \- H/ H/ {- m
( P. V8 g6 t6 D
; L9 p8 U, x5 P; j1 d. ~" q# G
. m8 H- @. V; c4 b 1 v( e/ w p& p) C7 _# |
8 s& L m" j: G+ Y" ?% n. u) h 举报/反馈
% l4 | g. d( r+ m0 p# W
) \5 u7 h) ?9 [; u* K% A k
( L' T6 `/ Y4 q2 X7 l! W2 e3 L( A! x, V4 G. F
- b1 n8 \' |6 \8 N! ~! C5 A$ L
5 D- { m3 H' } r7 j; Y% G# ]$ k
|