+ o+ }2 a" Y+ k4 J. }, s
$ v4 a) W( J8 ^+ D( G' `, Q % P, [( C) Y; P: o5 J
# o. W4 ?3 _& S 01:39
! d! [$ z& Q/ b5 Q- Y 4 z: ]& a* L* b
% v, P% @0 o. m$ E: x& b7 R4 o" O
0 g) k- M& j2 x* s( q
# x. C2 e, \# I7 r2 |8 z
用python画漂亮的类似七巧板图形,源码解释如下: 9 c) p; v8 o$ H( T9 q% f" x5 f
5 `; L* D2 e6 T ^4 q+ E1 p * \) E; {1 e& u( f
用python画漂亮的类似七巧板图形
! l) G) ]7 f7 ^0 o4 l; Q
$ \5 g: S; R) [" W/ F
. ?6 i+ C/ y$ m" a; ] i import turtle as tu 调用turtle库 8 V6 D; n* h* W M, `
4 _: `* ^. P7 l 0 d4 W' |( o! h! t
import colorsys 调用颜色
! ]( E7 S) u* Y i, N. u! Y, y
; h( Y$ T" Z' r9 n; m+ K( ] 1 @* ~6 G9 Z0 O" a
tu.Screen().bgcolor("black") 设置背景颜色
" x, r: M. e: s. t) O/ Z5 W) l ) V; r0 _( C4 j, A$ D
) E' [( c& W9 {( G" R/ }
t=tu.Turtle() 设置t作为运行主体 B$ k; ?4 s% |+ M2 G
$ m% T& ?4 v- n/ a2 b; s5 p; \
9 S0 n4 c7 Z; M; n" ^; Y: B6 K. T h=0.3 设置色相 p+ K! s! p' o1 q. J% R
! G8 s' u( j& u
- J9 x; a3 z' Y0 i* v9 E: N def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 % C0 L6 Q2 O5 D4 n/ E$ V2 O- [6 W
; b- N5 p% z& t0 } 6 a, v8 Z7 z3 z
t.seth(ang) 定义转向角度
1 Y) c# R/ O. `: J4 G! s 8 t+ u9 v6 g3 r8 Y' R
, ~( e) \! r- r/ G4 A$ A( u t.fillcolor(cl) 填充颜色
5 r! m5 c# @! c: t0 ^$ x6 j" b ) I$ b! j! E$ ~1 s: O
4 B9 ~% S4 c' G$ j: ?. g( Z4 r, D
t.begin_fill() 开始填充 5 ^! r% d. j# W* W/ V. a/ a6 b
" _6 W6 g& p( _% i# u1 B
- [; g6 F- W5 R9 s5 c t.forward(len) 向前走len个长度
6 Y- u. C# | J9 n/ y8 @$ \
# ?- c r* w$ v+ D+ U
4 S4 i# u3 M+ L. _( l t.seth(60+ang) 旋转60+ang个度数 & B$ n b) U6 R
0 q* A; ]4 i- Y5 S2 S
; F) _' g6 k; J* y& J3 p) u& v t.forward((73/200)*len) 向前走这个长度 7 g% U ^3 g/ {, l8 ~' r
0 Y! y$ L8 x' J$ C6 t8 O
) ^$ n, M/ k7 t$ U+ C$ D t.seth(150+ang) 旋转这个角度
: A5 ~% R( U- ]& `# t: x4 v9 {
' G+ `2 }; W* @7 A8 s5 ? 6 ~& f$ X9 [3 F4 c. C
t.forward((73/200)*len) 向前走这个长度
9 C1 D! V' \; u7 k / _8 B4 {) Q% U9 q+ r4 l- i! u1 i
% S% Z" Y! j; x$ J+ ?2 Z* ]0 D" w/ ^ t.seth(210+ang) 旋转这个角度 * j; F8 i6 {' a) O3 Y+ B
& R3 ^2 K) D/ F$ |9 s
7 ?$ q! O K* m1 R- P$ ^# q t.forward(len) 向前走len个长度
/ [3 }6 D: Q7 q& Z2 A% X ( e. c" K2 E! p' ^$ A7 g
3 e; Q1 T' T( |6 R* U! b- t
t.end_fill 结束填充 # {+ w" R3 p& m
/ }8 y$ Y& N! j# E/ e& W D4 l% m; W# R
: D7 K4 @6 C- H8 K, ^+ l, e
t.fillcolor(c) 填充颜色
8 M: O# y% q% U0 ?. e
- j( a6 v( b; A0 E8 g' G$ x2 _
2 Q+ _3 q% o7 P3 L+ e t.begin_fill() 开始填充 - N3 }! {% q! O* s/ y- D( ?0 ^
3 e5 W2 F6 O9 Z, p4 R
6 @$ r3 Q0 s5 N5 K' L7 I' m0 N t.seth(ang+0.01) 旋转这个角度
/ @- _. M- l: j8 C# A1 r& _0 c : ]1 P1 J1 g0 y, p; f9 g: Y
7 A4 Y2 E$ F. g; @ Y+ o
t.forward(len/2) 向前走这个长度 # G, Q6 Y& `5 o- q. P- L6 B
4 n/ `5 k t' ^% f/ o1 @/ x4 n0 n6 ] : _% g0 W5 B7 M( A7 b
t.circle((13/200)*len,180) 画圆 & J7 g: L: P* Z* ^& b5 ]
% P: o. k; |% {1 w4 a
( B! T& r K* K+ A$ y! w t.seth(30+ang) 旋转角度
/ `- u) r, [3 { ~7 i- t$ j
. r% B& F' U1 B 6 }9 s( O% T0 H- P' c3 y
t.circle((14/200)*len,180) 画圆 , n- @% B; Q. ^ J' G8 p O: d
: g( R, e/ [: w
! L# q: I+ A% w2 w' X: ]3 m
t.forward(len/2) 向前走这个长度 / }9 n; u# {6 m: M) |
; O' i5 l6 P8 v# G
6 w' X) t- p. [. f4 B* D t.end_fill() 结束填充 1 e7 Z, H; u0 K3 X1 k+ `" [
: {. k' Y7 y9 ]
$ a5 M5 O D- T n3 \. b, }, K for i in range(12): 设置循环i * e1 L. k) P& Y/ x
G! Q3 G& C& f/ s j
% e) o3 U' }$ D8 r+ ]& B
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 " d1 d6 C- d2 L7 o+ ^% `( E9 [
7 \1 E5 Z! e6 X; _+ r
2 j h% P8 a3 L
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
3 N% c* n0 c3 g4 L4 E
& l$ V7 a/ u _/ {7 _' I9 I8 Z # G. q- n2 s# [
t.pencolor(c) 设置画笔颜色 4 ?1 X4 c7 O! a/ h2 y4 u+ a5 R
f4 a5 v! |. K5 Y. {/ S
: D& V P6 ^0 }/ z aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
4 _" d: w6 N+ Q& {8 r : g5 [9 ^1 c* ?, V5 [) O
; V! A. j9 \* _# e# m# D# ~
h+=0.15 设置色相
) r/ F: Y$ `2 |% k# Q& u& D) C ~ ( e( S- I) C, A) s0 F2 {# F+ U
" n- s8 s1 ?) @5 b1 p t.ht() 隐藏画图
^- G1 ~1 R. H' D9 Z
$ u/ F$ c. K" l3 V! Z) e9 H0 V# m
" l) a% P0 V' z# ^; m# T% u. F3 `8 G tu.done() 结束 ! j1 K$ e" ?5 A% ]- P1 s) t
; n9 d, w2 {3 F2 K , B8 O! O; s+ w
0 k% i5 t" G3 v5 q, x
1 H C1 [' k/ \
( ~# J8 ?, G0 \$ E& p4 O 源码如下: & z2 u* E, _: F V4 C3 h- l/ |( s
j' v" C- c, w) K0 \
9 v( `1 i4 E+ ~$ K import turtle as tu
* U6 \# Z! J+ N6 }2 s9 }
2 R2 N+ c3 R6 }
, i4 X' g8 \# ?5 p" U( E import colorsys 9 f" J6 N% s5 m) n& i9 w
. y/ a5 u3 _$ l7 f2 [
) E* E9 c, {( k. Y/ R! [ tu.Screen().bgcolor("black") , p* D O$ [+ S* R
, b( S; N9 J$ f- J# M0 T4 i, V % b( Z5 X4 C" z1 O7 ]
t=tu.Turtle()
# b' x& f% c* N6 ?! E5 T
. N2 { f+ I2 V; m / Y8 x+ v0 C# J7 \; N4 R1 ]
h=0.3 4 k9 Z9 P- u5 D4 V7 J
. I r( x. ^. C) ^- e
% ^$ ~+ b% R+ u/ m# i7 `$ f* n
def aaa_coder(len,ang=0,cl="#000000",c="black"): 7 n+ i9 r5 [1 _. b0 G
) h2 Z) d! Q' f* M \* W1 V, [
. ]$ o" M$ D7 g t.seth(ang)
- m; D$ s: q6 V. o0 a0 L' j
* e! ~9 X% } S$ J1 x
1 J$ y: y5 k" n% J) P* \ t.fillcolor(cl)
/ y, U# T8 q' O ' i, ]* x, U! T3 P8 P
0 N* o' J1 e. r `" l7 G
t.begin_fill()
! V3 ]9 ~5 w. E: R/ U2 i) o # j6 `" F! d6 X2 u5 M
7 ~6 q5 _4 q! ]% t t.forward(len) ; U! F. i+ ?9 D" s% I1 A- u
) H' J% w+ w( @) O; d: j 0 E% R5 b1 P0 H8 |! _
t.seth(60+ang)
: H" ^) f1 Q1 }2 R2 f4 J / A- h+ a8 e* g! h5 C( H2 s3 p/ n
6 i: x* i2 ?6 W/ Y% [0 {
t.forward((73/200)*len)
2 B) e/ \8 M9 [) \9 Z; o
1 N) C# u3 x+ H6 ~/ C! x
& | g: ~0 G( d5 U t.seth(150+ang)
* G. k9 G0 M* \" P4 } M9 B* ^0 {/ _2 R" _
) [" d5 _- H: R3 C% i
t.forward((73/200)*len) 6 b1 l/ I. u( ~# E* y* A
; k5 F) u: t$ D, h3 S% C4 g 9 O5 p/ `. o. j
t.seth(210+ang) ' r$ B6 ]3 O H0 G" [. k
1 W% C" p/ l. R# |+ [& b5 M
* t& N! W9 N. T# j t.forward(len) ; l, B" M4 W9 r7 Q, J5 x- P
( a3 ~8 ] U! s- \6 I$ J # _3 s& H0 {6 g3 }+ {0 d+ s b+ Y
t.end_fill % @2 ?, I+ T" r" c" z2 X
* \& Q! l4 E5 w* b
/ Y+ m3 g7 r1 {2 [( O$ R t.fillcolor(c) 6 W* _ k6 S/ f! e' q# o
# R2 T) ~7 W& Y! ?
. }8 r+ r7 w8 @) m: U t.begin_fill()
% }$ C' O* m( y/ r4 Z' A; l
, v" G& V3 r& v, [( }* } ; |5 h G/ I& r, s" C3 k a; ^
t.seth(ang+0.01) 5 E, \4 {+ `4 K- S; S
/ f) ~* }1 R0 U. f4 F
. N, A1 y& q3 l4 K3 D+ G/ @
t.forward(len/2)
3 F* y0 i, _5 v' I
- A( d, I+ K4 v$ J 1 N: ^/ ?1 d( u3 ^% w- Q% x
t.circle((13/200)*len,180) % M$ K1 K* ?: c$ ~
* w$ }% }) [' a0 H$ ^
0 j9 r2 n7 Z* o: t$ z V
t.seth(30+ang)
# e$ j) g+ |( H+ W! [! o
7 l! e! U+ c+ C6 E
+ T9 K6 T# Z: R t.circle((14/200)*len,180) " w1 g5 [' A% P4 Q, M$ m
9 D/ Q' i! [: O' l1 ]9 z3 P
7 K! A. C4 L" P8 h+ j8 s
t.forward(len/2) ( [# C- o `$ D; S2 |, E* x
1 J( W" X1 Y% r& z" q
. J+ M7 P3 Q- \7 V; m( v9 g% }8 Y1 [ t.end_fill() 3 M6 M d4 D+ O$ ^4 _
' P, n. }6 m: P3 o- y
+ F/ a* T Y) e3 t4 C* N% V+ B+ Z4 }) P" T
for i in range(12):
0 B- `, B% q. h' I 0 m6 S9 U+ a; E8 v- c& e$ N
3 t% r8 i5 k5 O/ m
c=colorsys.hsv_to_rgb(h,1,1) " J) \# q! ~ w% t* E
- c8 h& L' J ^: ~
' J4 H+ s4 o1 Z/ d1 B/ \8 t cl=colorsys.hsv_to_rgb(h+0.5,1,1) 7 v; |& S% W7 o) E {
6 M& ~6 _3 ?# Y- q: ~ - Y& a. e3 M! P4 T! `. o
t.pencolor(c)
+ k% X8 ] c; ?: ?
+ h% i4 ?! q0 b, W
: {/ X0 B7 u9 T, l3 k aaa_coder(280,i*30,c,cl)
9 d$ i6 [1 C4 Q& ^# A' S y
* L- k! i* Y: O' m2 q* L2 m. b2 b
! m/ W! Z6 X% ~- F3 L h+=0.15 , c' ?$ x: J& O! d# q3 W
+ g3 X$ X% F% T! @
; [1 U1 o) C5 A3 H* u/ A
t.ht() 3 _8 f* A. k0 Y) ?; }7 [! u5 }
1 l9 G1 m8 {* c8 K) b: G3 u
: J/ K0 x& \; T$ r tu.done() - X" { ]( g; P B" k
6 l- a' T# k3 ?5 `- P0 B
% S' g/ G; m0 S0 q4 V
( a$ Q, y# b+ X4 m; A$ n+ ]
a& G" J( A! E" o ) d: K9 E0 i! w/ T" L' d: q' R3 d2 n* h
举报/反馈
Q' K" S x- ?# d( H
5 i: D+ F% Y I; u, F# @( v; F. `5 g- n1 C
/ |) P# Z4 d5 E2 N' x: _3 ^% O+ D5 b: [2 ]! N: v! d! q# @! J
' i9 h& V! }9 K |