a+ j/ U0 T4 t6 G1 {# f 9 ~9 z' Y, u& D+ v
5 ^) g2 G/ R: ]2 b2 e. i ; _* U+ i0 {! G' E
01:39
& S# h7 } k2 u5 s2 N ^0 @) \0 F. c7 n: o
- V b1 ]9 w2 A( k; w8 t! k
3 B% I0 C8 d% Z2 Q - i( d/ [9 g2 P) u3 ^
用python画漂亮的类似七巧板图形,源码解释如下:
& U5 ^. K. _: [
, u1 S: M+ I, ]+ J) { 9 E, ~! M- E( x
用python画漂亮的类似七巧板图形
9 Q. ?, s1 h4 \* B" F4 D5 x& l5 W* K
6 _% n/ w8 ~; J
! ]3 n6 h. l: J2 | import turtle as tu 调用turtle库 - d* d* V/ F9 n: i
3 x& U" E8 a, Y$ H" q
2 S+ S/ U C' m
import colorsys 调用颜色
) S- ~4 |$ U, R/ H( R% T # @, f/ i% z4 {) s' k& `7 x
( S! ^3 e \( Y tu.Screen().bgcolor("black") 设置背景颜色 ) K8 I9 k% {' s8 c: U, x5 Q- r
0 h, J, r9 g' |' N7 u0 b Z7 {' x; |
" N* F- u9 g# o" x; U
t=tu.Turtle() 设置t作为运行主体
( Y# h [8 w: E% I6 n1 {4 |2 w
" n) h; r P7 G( U. o
/ \1 E" B% W+ l h=0.3 设置色相 0 [& I+ `6 ?( B5 }- H' t! J
7 E1 n+ @) c8 |" O) _" W
0 q5 t1 Y& e* D: W2 `1 d6 Y def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 , S" b3 L; U5 i; `
, J! T6 C; }5 U8 Y+ X! {
z( m$ s# K* n8 R9 s) J t.seth(ang) 定义转向角度
0 b: K! B# U/ Z g4 i2 W, I ) t& o& L0 ^! I, E1 z
- D- G5 e- ?- u3 \7 a' L: n t.fillcolor(cl) 填充颜色
- B3 q( y- W0 g3 _0 Q. |: p/ M
; j! f5 K: q# P. N, D# b* j
' j! \* {! o# Y+ |8 Z% n: } t.begin_fill() 开始填充
% E7 q* M( O) c6 B3 q) p
2 t! \8 ^- k( O. C) [ + k! v) d; e: A3 g" B9 h
t.forward(len) 向前走len个长度
0 y( g+ D2 g$ k. D( M& H . {: X7 A2 K4 c0 K1 Q
3 t( g" `3 s, Z; ^) Q0 M, M
t.seth(60+ang) 旋转60+ang个度数 - C5 j2 p& y8 `# c2 T/ W8 c
, H! J% T4 R/ l( Z! Y* Q2 Y( ?
( N8 O8 k" l }% W W: J" ^5 Y
t.forward((73/200)*len) 向前走这个长度 6 f, r! Y# `- f7 A! P- e9 k
# E/ J \2 h! o + S3 X6 K1 r" _7 _3 T% d, o3 Q7 l6 p
t.seth(150+ang) 旋转这个角度 9 C2 |5 R* ~2 O6 e% t; E5 Y
- z5 ~1 w9 A5 Q) \" l' J ' J7 l3 u e3 w) ^) V5 _( f! ]0 \
t.forward((73/200)*len) 向前走这个长度 ! `' v# ?9 Y2 N5 ]: ]' F
( @. v0 t R8 y7 N3 C% O* q& Y ) w7 h& O; Z% I) ? p0 F6 S; k
t.seth(210+ang) 旋转这个角度 4 r8 s2 W. E& v$ k
8 j6 e4 g! \7 e c% O- [. c K. } & q7 i1 h5 _1 u( Y; Q# J7 f
t.forward(len) 向前走len个长度
# I/ H9 V$ x, H5 J! R, O1 H
' l! Y. U7 K8 Q0 Q, k
3 R' z1 x" s- s6 v t.end_fill 结束填充 8 I' d. [" w- Q4 K4 C( i* |
, [6 q( ], ~" z' F8 G
" P$ s& {. d& F4 J$ Q' t- P t.fillcolor(c) 填充颜色 2 I% R% G& |/ Z2 Z# c7 O
6 Z' @0 a; Y8 E3 }- y/ _3 ?
. g, v% P: [6 K+ p
t.begin_fill() 开始填充 * c6 _. i: [. {/ B, {% Z* A
9 r+ A! T- f: y4 \6 N2 R
- g9 D2 L- A4 ?. \2 Z t.seth(ang+0.01) 旋转这个角度 5 x" O- B5 q9 T# T- |
$ M2 t8 |, A* B0 P% F# ?
. X ]3 s$ r3 F0 q/ H, b9 k# Y
t.forward(len/2) 向前走这个长度
. L1 p6 g; A' c% b% }2 E
! H, e z6 G }. c
+ R" D8 b' C9 ]# L" H4 ` t.circle((13/200)*len,180) 画圆 & y) L' o6 q' x% M
9 ^1 `( @6 ?5 c- B$ F& ~2 L' U
; Z* X" \- S4 {/ K2 M" V t.seth(30+ang) 旋转角度 _7 ~1 i$ S/ m% x
7 l% p0 _3 X; Z* |# u/ b: D3 U 0 z( r* C! Y" c: b( l& E/ E3 r/ u2 S3 Z% v
t.circle((14/200)*len,180) 画圆
0 }9 I& f. W* q R$ |8 y: Z0 w 8 S" b/ W) l+ r$ h
2 G# P' \* Y! W: }/ W U8 s t.forward(len/2) 向前走这个长度 1 ?/ s7 {( K5 S* O
; V" P* X* P6 q$ G0 t7 E
* @6 B( p& N2 \1 Y# E2 k
t.end_fill() 结束填充 - L/ Z. H- O3 i$ ]8 v
9 d6 ~* _: Y3 S( Z7 T
$ v( a2 ^9 U+ |* A W for i in range(12): 设置循环i
% e* W8 l, {1 w3 B0 z1 H- L' W
- i. R3 ]& L3 {) R R% F1 }5 v8 c: [4 f/ D
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色 " o3 E7 n2 t* B9 ^! ]( }0 m8 ?* F
+ }5 r7 a$ X7 @
* N; t! a1 P( m# a. V2 Q1 T! V cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
- p: u% C4 ~$ f% M5 z" U0 y
* h: }, D0 M( T) h9 `' X' g) V: { 2 e% j+ V1 m5 b+ B1 z
t.pencolor(c) 设置画笔颜色 ( [% h8 l9 |% ^/ W
4 q' [1 ^8 q) F' ?
A" m" g3 e, G/ y& J5 h aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数 / B5 b' a# V2 t6 J
7 e) t/ o! M& T& f- _% O0 d8 e
' d% f0 L! [, c h+=0.15 设置色相
. H7 A; m7 ?: R( `8 v/ R
8 k7 u5 [: u6 }5 J$ R+ X K/ v& P; Y ! l7 A* a* O0 {0 w6 T
t.ht() 隐藏画图 b; a9 x- c6 O. y- I0 |: \
' q4 S1 v. h' G# R $ O0 P0 v) t) Q( i! J. P: T
tu.done() 结束 1 ?8 K4 r# B' m
. s& Z8 P7 G: Z+ d1 d
6 w2 V4 }. g& G5 W y; l+ q- u
b$ q+ K# S# Y9 a! t0 J' Z. s
z3 @ y. o& P0 P! d' n
' ^, D/ \: L* E 源码如下: 7 y% m1 G% K9 m# D& {: K" l+ u+ k B
7 n+ R$ i" U9 o. Z/ w7 n
2 {2 O! x% ~9 U) [' r
import turtle as tu ) w E$ u7 C+ ]
1 u) X9 p) g! Q( V& Q6 @ ; h& q' m _! p7 K! A
import colorsys / m9 E9 ?4 O4 X, N8 o
7 r# O [9 f% Q1 Z- V0 U' L
5 @: E7 q6 p9 k% O) i4 A- J6 s tu.Screen().bgcolor("black") 4 z2 u6 I& X/ e" \
+ [' M8 b" s& Y/ r: C, @. N) B- j
: U$ u8 y* [ i! x$ N" S
t=tu.Turtle()
( t( ] Y- x0 L! Q- d& C3 b4 Y, U ( D% H0 o: e' D' {
% M/ t1 B: K" y4 Z1 K6 R
h=0.3
, b$ v0 H( Z, o; F, h) @( H
. }* ~% @. g* Z3 f8 K/ c! t7 w $ V% J2 K. p+ R% j/ ^! S+ W f) p
def aaa_coder(len,ang=0,cl="#000000",c="black"):
/ _, q- Q" B! w$ N, d
: e9 @+ ~* ~. q' l* q6 L& A" \ % A+ P& b; S5 t$ e9 z/ v/ @# W# u
t.seth(ang) 6 ~( ?7 ]4 V n1 U
2 e" e! X$ q6 y+ T4 m
' e% T% v+ {+ F1 o$ L
t.fillcolor(cl) 5 [$ r: B7 ]) O. ^1 K
% a* ?$ x8 j- | t & U$ l+ {! u3 o- X
t.begin_fill() 1 U2 F# Y5 r9 L' n
8 P8 @2 ]7 |3 P% w; m. L
+ T1 q B6 c- F8 W% H, g( [
t.forward(len)
( S# X2 K; b+ k+ | 0 n Y {/ `# k
3 O X# I& X! D' y$ C t.seth(60+ang) 9 T+ F0 B5 M1 F- b
# f& t* U- t* q d, x
8 L% m# j5 b4 h; \5 { t.forward((73/200)*len)
+ n* Y4 v3 R b5 [. Z. ~
3 Y" {; }9 l. Q " A% X9 p |% N* Z. p
t.seth(150+ang)
" X, N1 d6 l( w
0 s" _1 u: q( Q* _ % k9 X5 k0 X( c
t.forward((73/200)*len) 6 L, Z/ i7 j$ h3 ^" B* w5 A
; W/ D/ S9 l; _8 ^5 u( u/ D
7 w' G9 y9 f6 Y. W8 |/ R& `. j t.seth(210+ang) 7 i1 O- I, n; d* C7 ~$ p0 z
& P. p& d9 M! k
0 p( `! A. h+ Q0 y: V t.forward(len)
& D" r! [" s( {: |6 S: Y. Q
5 Q3 m7 f: T% A+ v( ]; P1 V
7 A& k5 U& l( g6 F* X3 a4 I t.end_fill
5 _* M: O1 `6 a* @
) L0 C6 L8 P( u8 D9 k W0 c 1 f. | |- y0 A
t.fillcolor(c) ) N6 V; r. x: p) n
+ }6 t7 N: @0 C* V
/ q! x5 d% e4 w! {8 F t.begin_fill() & `) k8 {: Q% g/ ^0 Y# i5 i
1 r4 u: H: e. j 3 B7 @8 v% S# l3 k" R
t.seth(ang+0.01) " w$ R+ `' H0 u
. _5 E: k+ r: U# i, D, d+ s
" m# a" g" o2 g4 n t.forward(len/2)
" d2 }/ f( C* c$ m/ W1 S & n( b+ f4 h, Q# W- U/ o
& C) G( R0 w) K3 [4 `9 _( W# M t.circle((13/200)*len,180)
: H& D+ K/ O1 J, {& ^ S" M
- X9 N) \& X0 E! ]+ ^
9 E9 I/ g5 ?$ D' N8 _ t.seth(30+ang) * A2 X1 X' h8 V6 }8 j2 R/ T8 c- T
2 O4 ?. P" w8 i% B4 |0 A / p9 p# l ]- @+ A: O* [9 F- W% o
t.circle((14/200)*len,180)
' U# O5 L8 R; Y4 z& E0 ^7 l ' o- o+ l. h- P8 b
0 n* F9 E$ N/ u) n& h+ l
t.forward(len/2)
" s4 R" g/ m& ~/ a& D/ }( U ; |5 D8 P* o2 v/ Q* f' F0 v
6 N& L5 w5 J& t' r0 @8 C t.end_fill()
9 D& j3 h& ^1 ~, t: n - ~& ]; Z) `9 W( a0 A4 y* c- ^
5 y* k0 j) O. H R1 I/ k
for i in range(12): , a Z$ x# O0 o0 D2 t
: F9 I I4 S) L A; ?6 ~2 j
5 a# I! N7 y: c2 [! u* U9 p" T" A0 @ c=colorsys.hsv_to_rgb(h,1,1)
- Q% n* ]! E. a
# J6 }3 j1 s: }; V9 Y7 Q 6 E: U- }) q& @7 I8 W( A
cl=colorsys.hsv_to_rgb(h+0.5,1,1)
. P0 T, O1 x$ N9 l G r
6 T- j# y d8 X. e ; E; ~7 w0 f2 r' C" g, |0 x* c! L
t.pencolor(c) : V0 c0 k c' Y6 X
% c. Z+ X; D# ~5 H. u; L ~! v$ b5 \- }
; D: D; S6 y. n: X' G aaa_coder(280,i*30,c,cl)
# ~7 |* p- n7 Z/ |0 z0 ^, g 3 d# K/ l8 s# [- y5 y0 t g
4 M4 f, {7 W' f8 e+ F1 A4 i$ u h+=0.15
5 o+ `# C \! ]' X1 ?1 @ + n9 u X0 L; `6 P5 i) t, L6 P8 I8 e
( w9 W. N1 `, A1 a9 a% V' j
t.ht() $ { P" y2 R7 K& {9 {
6 h: M' F6 N# r/ C8 p6 ~
9 [" c7 }1 {& B' ^
tu.done()
* A6 ^( m7 @5 u% @: r e5 C
+ a5 X& w5 B. }$ ? M& n
" t& |8 n4 c+ ^0 U
5 o7 o5 S, M1 l7 c- O. y0 L0 Z
# c' P7 C7 u9 k- [1 F + n% v, ^$ e0 X4 @; G' {
举报/反馈 J p! \9 Y6 y- V, }0 _* ~1 S# @
. D4 M4 m3 p: U: j
, i J% c& k. ^9 {5 u r/ b2 N# {
5 n; I; O4 H- L; v) |* a6 v3 L0 |/ c
. Q, z9 @; V I
|