2 Z* ]5 \- N8 M' L 1 d' l4 x3 u( C. q" E Z# {
8 n( Q' u- T; q8 w0 \: v3 ?; f" \
( ?! A5 O$ b2 G 01:39 4 W3 A( S7 J& q5 b# {7 U
8 f% J3 s3 F" B6 p9 \ ; U j7 r! B% X7 u0 F
- A7 V& N' X3 Q$ n: u9 H
5 B2 Z9 R- Z- c' K) Q# U3 v 用python画漂亮的类似七巧板图形,源码解释如下:
, u# a, P$ o: r3 S8 v
; E4 j% o" {( a8 K4 P" v$ h 6 v" J$ |! b" y+ ^% e$ D" L$ l
用python画漂亮的类似七巧板图形
" D: l b2 Q$ K. S 0 h p- d7 U2 @ _$ c9 `; M
# C& t0 u+ ~/ f4 J. Z D
import turtle as tu 调用turtle库
6 N' {1 ^ g2 p( F 0 _7 B& X) r: l5 j, |2 [8 t
( S) x. h2 P) H import colorsys 调用颜色 8 Y% K, Z/ g* ?7 E; c; z5 i$ g
0 J: B# j2 z/ J5 T+ \ o8 J/ c
* \* ~" g3 I4 G" s$ w& U
tu.Screen().bgcolor("black") 设置背景颜色
4 B; C: M/ Y7 V0 o4 ? $ o8 f" h8 B, @. ~! Y
5 r8 L; {: D2 c1 J+ l6 }6 \
t=tu.Turtle() 设置t作为运行主体
0 v: V2 U I1 u4 q
1 s% y' L, `; F- S& I/ i# z# y
/ V* h0 L& E/ L. a h=0.3 设置色相 2 y8 u/ \' c2 e
- ~+ R, _* U, Y2 ^9 @, E $ S6 W, y" T0 [
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数
0 m' C+ q8 E! S, D! g$ P- a
$ l& Z0 G2 U1 T2 E1 h$ |0 i 4 c, `* l! j3 c- P' [; }
t.seth(ang) 定义转向角度
4 l% h# C( r- @3 ~( q6 K : Z+ S. j4 H4 p! d* R
6 K2 Q3 u6 o6 F# h J
t.fillcolor(cl) 填充颜色 0 I+ A) n7 a5 F4 @1 N% J
& x9 v5 Z5 L+ [) x
; a- O1 q3 \$ \9 D t.begin_fill() 开始填充 7 [( k! U H; n6 [
4 |% k* n T' U3 ^8 X
# ?1 E+ p! `2 t9 z. Q t.forward(len) 向前走len个长度 8 M; v' r! ~% j: ^6 i2 F' s6 Y3 w
9 a0 k" H! Q- b
) F- Y7 i# o. U
t.seth(60+ang) 旋转60+ang个度数
/ f f, w0 k1 W9 E, h: T$ n
3 k, ~ ^6 _! A2 g% ~/ y * H; G& L% l& N! a+ |" x2 Q
t.forward((73/200)*len) 向前走这个长度
/ ?2 s$ F, V3 E1 ^% a
8 Y' G, M5 H5 ~# J8 _
% q& b! q/ ]1 H5 w a" d/ A3 I t.seth(150+ang) 旋转这个角度
3 O) }. Z8 u4 s' V
/ U$ d+ B6 Y: h! r) Z% R+ S " [+ A |! Z8 f
t.forward((73/200)*len) 向前走这个长度 ' Z; Y/ S, t( F6 g+ D& m) z
}. U, F* N$ m- \4 V" w
" j+ a/ F% ^6 p& O. X- O' i: O1 X, g
t.seth(210+ang) 旋转这个角度 & a7 }8 i5 i9 V4 x$ n8 j8 ^/ i
P0 ]9 I6 e4 G/ H9 h , ]7 E3 i6 V4 B
t.forward(len) 向前走len个长度
0 y" O8 s6 v6 r$ Y2 _1 E3 ~
' ?- e, w0 v- d4 q3 U! K* t ; N3 Z# a! E4 t0 m' R
t.end_fill 结束填充 0 L. T! i+ S5 j3 i
' g$ z- b; ?1 J
" |8 [; ]3 W3 m% w3 a( d( r t.fillcolor(c) 填充颜色
2 T( x9 J/ _! A: Z & `2 P) {& j1 ^
( S% b+ v$ }( [+ I5 b% ]8 K7 U" \6 h
t.begin_fill() 开始填充
, D/ j3 ?5 v: w* U3 ^0 N" l0 ~
7 X* g7 U& E& m1 ^
9 Z: t2 Q0 P5 h/ u- d0 i t.seth(ang+0.01) 旋转这个角度 + m* x0 z8 D/ c# R
, M$ y- ?( V, D. g" K 1 v$ {: L, M5 v0 u2 A8 V! G+ k0 h
t.forward(len/2) 向前走这个长度 : U5 n; |+ ?* {2 K& N6 b
g3 F H: L& Q% _+ z4 W
7 f9 b3 g0 Y% M, a, [ t.circle((13/200)*len,180) 画圆 % \7 n0 c! F7 s, ?7 v. ?& L
0 h) j2 W1 H. P6 P3 N$ ]; E* U. S
% a+ X2 v, v. c$ X0 @ t.seth(30+ang) 旋转角度 6 Y% q5 r; b3 @9 H
3 z8 U0 H% N W- N! p0 Z
5 m ~& W" [# |8 W t.circle((14/200)*len,180) 画圆
0 n7 b1 H0 q/ R * u; f7 o2 m8 x+ y* o) p
( k6 K1 c$ | Y t.forward(len/2) 向前走这个长度 # h2 Z1 T1 Q! q7 W
6 E- x: H1 { i; q% N) e
& c: c( J A: q: e) A) V
t.end_fill() 结束填充
9 r; r: V/ p4 f7 L 9 j7 u$ D! F6 k- l
# N2 s/ Q9 i" E, h for i in range(12): 设置循环i , D8 W9 u% q/ |" H$ }4 o) B
6 k8 r1 N" {; t! k1 N8 \, {- b 6 X/ P5 \6 ], d: X1 K
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色
" C) p" m( f m; \1 q ' Z" l" z+ L# l9 {; U0 l( G
' I R# C/ g) i
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
+ l/ N9 e% ^' h- K
- z( J$ ?1 |( o- K9 J# A
( S3 m6 t7 m d$ Z t.pencolor(c) 设置画笔颜色 # U2 E' R. A( U8 N3 K
; z3 o( \: W8 q, T# e$ o6 q6 O" D
. M" e9 t2 ^" f aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
+ H3 F- {. d8 P7 k7 y7 t
* _( _5 S$ v' ?, Q$ M
' W' g/ v7 e2 p9 t- c- C" {; S h+=0.15 设置色相 9 J) C1 j) Q3 E# c* L: L9 Z
! p5 ~' a( S. \) l
$ ?* u4 g4 G0 H5 @ t.ht() 隐藏画图 8 D7 C* ?! e( I1 U1 L
! T! e/ f: O1 \
1 j8 A6 j: m! p7 }/ p" A4 u
tu.done() 结束 * y) x9 |& {+ Y( x5 j
/ C) ^. ]2 ~ f3 J4 y $ e2 B5 r+ `! P& ]
3 q% m1 X: `% f' a4 \4 d& Y6 g ( O/ D% y9 f. Q6 B
2 q; Z. l7 D0 q
源码如下: 5 J* T! H( A( K/ B, _4 t
7 {8 Q0 I+ z0 D- P/ d' V ~
# N# v+ } K$ N) X) M5 O
import turtle as tu $ r- F ~: H f) t V
7 S ^9 h/ S6 B7 c 3 m% T# i- m2 ~1 `
import colorsys ; h; E6 W% R! H9 e B" {+ c& ^
; S8 y0 o1 y. p4 [5 Z0 q# ]' Y( J
7 G* q5 ^1 V8 M tu.Screen().bgcolor("black") + v, g$ E, B& e1 `9 P; {
* W7 T4 `. O l+ C6 J" j/ N0 N 3 s, u/ w4 U* G @( r: z
t=tu.Turtle()
3 C6 J2 k% T" [ # s G( } J) Q7 D. x7 J
- I9 N2 N& |, C6 p) R* j, b0 c. G- g, ]
h=0.3 $ q4 d3 t: h: y4 q: W+ ^
) d" c& C* C4 F2 D$ m / a: L E) c6 D Y
def aaa_coder(len,ang=0,cl="#000000",c="black"):
- Z, y2 M1 q: |/ t3 |) p1 H- N" p : C1 [+ ?, A8 J4 a9 Y
! `" e. U% u5 Y* S5 E
t.seth(ang)
7 q" H- |; }0 G9 Y% z ' A5 d8 h6 t( f$ I( \" i' S5 q" c
1 S+ }" [. B% m% Q+ u t.fillcolor(cl) 4 G* c. W: P/ _. c
8 N- ]- G& c/ K% E9 V7 P R% {# i & F! L% C& z& ]7 j# y# b
t.begin_fill() $ b0 W, C* C: T% _/ `* {, ~
! ^6 c ^" k$ b0 z5 P( Y# F9 p9 B' Q
% |" P- E9 y/ l: q% C t.forward(len) - i9 p" c; Y8 ]8 C: q- m! I
' f& y. C7 z( I2 B6 C0 ^1 l5 V
5 l$ R& Y% N( {4 T8 l3 v
t.seth(60+ang) ) [2 a9 E0 @: A. l; L
5 d3 C4 h9 C6 L0 D
: ]& x/ Z, n3 ?) f2 F8 }7 ]+ b
t.forward((73/200)*len) $ M- {5 z0 G2 l, ^3 Y2 i' v r$ ?3 a
8 I0 r5 h( Z# U6 X! Z
; v$ N2 r1 W" M+ H2 f5 R+ o t.seth(150+ang) 9 f* m, |" R' {* y8 V
* C7 A! e. [0 g! y% V& k) M
0 q* h$ \. Q6 P9 X t.forward((73/200)*len)
Y' n, p- z, \3 L + B: ^2 \& K3 @
3 b) R3 s# P5 X/ j0 [. Z- N3 S8 O( Y t.seth(210+ang) - S0 Y4 b8 k7 P
2 Z( B, d9 E' W0 a : r' A) l: H* V$ D, F8 ^
t.forward(len)
% m- X* R7 [. g5 {, t5 ]! n& B + e J7 X; v/ }5 O5 [1 ]$ o
8 |/ R/ }" j6 y8 }6 Y. o( H& f2 J1 u6 T9 } t.end_fill
. U) N. M- b( y' f: _: t
* v! b) P: K" ]7 K) E + Q# b7 p4 z" T7 o7 C& F7 A. E
t.fillcolor(c)
/ g. M: x; u- o$ i 4 ^; X V5 o1 \; b( ^2 A7 ]
3 Q% K' T$ q; ^4 D& Z3 _8 t
t.begin_fill() # X. y' y4 W" U% v6 L! a
, \- q& q2 v0 ^
. u6 k! Q1 ?, v" u& ]
t.seth(ang+0.01)
2 T+ o4 P! ^ q6 V0 Y - W1 u! [( M( F, ^* ]/ q; ?, R
0 X) o3 \$ m8 T; A( S t.forward(len/2) $ J4 J2 v( e0 C1 f0 }% |
3 ]; f1 J) t! i+ }- i
0 T% H& E- m: G# l t.circle((13/200)*len,180)
8 f6 L s2 r( |. ]* S+ u3 {, U3 U
6 H3 _, V, T2 n. s: ]7 Q; z7 f % g. ]0 Q0 x8 k F+ Z0 Q5 P9 z
t.seth(30+ang)
y* r3 W! w/ `2 v0 |
1 [$ Y: o7 P% S' F
$ p) R( I( M' c( L- e$ d/ X t.circle((14/200)*len,180)
) |9 P! y; l5 Q1 g/ E ; f# `& _: \- Z9 _4 y3 w/ o
, N9 ^* Q% \. F4 Q$ l t.forward(len/2) : n: H. R, F+ I" b6 x P5 C& K/ p1 G8 v
& I+ s# l3 s5 l, x% C2 v
# R5 g0 h4 ]5 I+ G: p* H2 s t.end_fill()
! _+ |. L2 b, x% u& l # N9 s" T, W3 J& a E; ~0 ]
, P4 t. t2 _' H5 Y0 l
for i in range(12):
! U2 h! T( Z: p2 R" X$ {* |" l
! r" q4 I/ R$ @8 ? & B; o$ Y3 I: @
c=colorsys.hsv_to_rgb(h,1,1) " d" ]% ?( [# w! ?
2 M6 q9 h2 O ^) C
( \ t+ c( r/ r9 ]( s- \8 y
cl=colorsys.hsv_to_rgb(h+0.5,1,1)
# Q& b! q' Y/ g' g( b7 |7 Z0 K * `0 {# [7 n6 k/ y }0 o, M
) G/ L, `& g6 V" G8 j
t.pencolor(c)
* }6 S! E" \: D . l3 r! P* o3 o- l" I
7 o- f* M6 D6 N5 b; t& Q aaa_coder(280,i*30,c,cl) 3 ~# q+ \% q1 Z* ^; H V
0 l8 S5 F" K! o# _
! c/ l* \% T( G+ u h+=0.15 7 j& L. m" {: j2 z
' q/ a: K/ z1 f2 M. I U
" x' u/ X7 ]1 T7 P+ w4 R) h! N t.ht() ' L5 ?+ {9 r- I# V& ?
6 {$ U& G) Q+ l. j+ `/ Q6 Z
: ?8 [7 u `4 k2 u: ]8 X% C tu.done()
, q, k" \1 p3 ]- Y& k7 N; u$ }. i1 I$ u
- Q( y5 i$ f" F+ a! ?" K& r . u$ K+ {0 }1 K" ?6 J7 E" @
: o7 g- V9 }% U2 c' G
! L/ i, T$ ~) o
, X* Z: T1 T' r/ d 举报/反馈 " f* l' }% N* ~+ R- C9 C3 N. h: B( w
% D: r4 W% J5 Y% o5 m% P7 |6 g2 a( l; S2 L8 {$ R9 x, [: j
) o( w3 k4 n5 N3 o' B& y2 I) C) ]: u, C2 E
, ^% D5 @& X' J7 [! ` J |