( @/ z9 @8 U: N- P( Z# B
. b+ x L% v* l: F' @0 M6 d& t
6 W- G5 C/ u% ?* Y
5 B; X0 o5 r4 o! q0 |6 ` 01:39
8 p* m* ^% z) t/ c. b. m J5 e $ s* ?; j( C0 M8 a& V/ B. o
, @2 X$ e5 |' r5 d2 q' c4 s ; r2 U- y' x. `2 z6 [
K t* z( e" E. h# h0 k# B' \8 z 用python画漂亮的类似七巧板图形,源码解释如下:
4 D2 e6 r! ^4 _+ k4 w
( F7 x$ ^( S* z) Y+ H- Z$ e
5 P/ r# ^3 e1 f5 t8 T1 g6 U; | 用python画漂亮的类似七巧板图形 ' I. }7 w$ p W) k U* y J; v
* |; o2 `1 n3 F" A8 D2 C/ R' R
, A; i, I C% {8 J4 S Y import turtle as tu 调用turtle库
+ ]; h! y7 H, t6 E2 s9 V1 O1 ] 5 N# h6 c+ z `! J, f2 I1 |( l0 l
' Y: c# Y* l- m, o. T- n import colorsys 调用颜色
: ]' Y Z" W* E : O$ M( V9 U& O$ b
: |$ ~2 ^- Y! _- r& r( C7 Z) c' ^
tu.Screen().bgcolor("black") 设置背景颜色 ) L9 Z; d+ w7 b8 v; R& J
( A2 _$ j9 N% Y/ G$ g t3 R' D; g) R0 n6 k, d
t=tu.Turtle() 设置t作为运行主体
) `1 @ `; O" S& P ; ]) _* s* `+ \# A- H: f9 U
$ w0 i% P6 F: B/ L) `: k' O! J h=0.3 设置色相 3 G6 q5 Y+ N6 x: y
! b8 }8 F5 m8 p2 }, l8 P- y' |$ Q
5 M7 K" d& V5 g" D9 J def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 * x' r2 z- E9 j" d& z9 i
. t: z; f7 n) V3 |7 k' ^( ]: H2 ?& b
6 t7 \& @6 k+ K t.seth(ang) 定义转向角度 % r7 \7 N Q+ S
. S/ D% B* d& X$ i& R! F. w : D G8 C: ~ J% T# j
t.fillcolor(cl) 填充颜色 $ y. `3 H! ]* d1 _
4 Q* L6 K6 t9 g6 v
! g' S- e: Z& u# G t.begin_fill() 开始填充
7 [4 l- m! g8 U6 j* } Z- ? ! P6 u- ~. u" J+ A0 n R! m7 [
- S( m( p. v6 s' Z( @7 B t.forward(len) 向前走len个长度
% K, o3 t7 s0 W3 o" n1 U : z m& \$ V$ m" s" t
2 l e2 L5 W* N; j9 o3 c t.seth(60+ang) 旋转60+ang个度数 % }# A7 z! R' M+ S2 r9 z9 W! i
2 g% K; @$ R7 E# w+ g) v
0 Y1 u2 Y: \: S. M t.forward((73/200)*len) 向前走这个长度
* [6 `7 Z7 v: ] 2 i! t7 N% g! x" J. m
6 r2 }1 V3 F' f3 k* J' D. D5 a
t.seth(150+ang) 旋转这个角度 . V* \: h" B5 L# n& G# p
& l t+ L. F' k4 ]. C
/ W0 E6 s) n9 w/ D/ @2 b
t.forward((73/200)*len) 向前走这个长度
$ V" t8 c" o; B M* b) ` 1 B1 e& S8 [$ M. f8 w
& ~) R2 ^. b. s7 K t.seth(210+ang) 旋转这个角度
0 j8 o2 h# s+ {! L/ n * h6 X1 x" w# |# P/ ^; |
- f6 `! W8 N$ O0 ^$ C- s2 B h* r t.forward(len) 向前走len个长度
# `; \' c* ~$ O# g
. W/ i$ B! x4 n7 g ; H7 @8 W7 f) S- i8 I! A9 T: r9 I( r
t.end_fill 结束填充 ( B% C; R$ ^. ?
5 l7 S; g& h2 ?3 j b1 w" y
0 B9 K& [/ K5 z t.fillcolor(c) 填充颜色 & |' q+ x1 `! E& I' r% V
, [& D* M6 ~% ~ 8 |- T. L( O8 ~
t.begin_fill() 开始填充 : j) D- k# M. b$ K- W0 m
/ i$ A: ^. Z" A3 K% E( D3 d 0 M+ k4 C2 Y5 P' U' h5 ]
t.seth(ang+0.01) 旋转这个角度 $ `+ |( ]) K: Y! c. Y' q
2 a* D& q- h) G" r# O0 {0 c
6 J& B& A4 c# c9 V t.forward(len/2) 向前走这个长度 8 d' H: d4 ~ `% m. a S6 x
. v4 I3 ?3 y$ t5 C! E2 l
) e9 {$ g3 }; y: ~5 w& R t.circle((13/200)*len,180) 画圆 ( ^/ a& n- j; U S
u2 i) ?& x4 v6 @2 H! W 7 C9 o1 m- z+ ]7 |: ?2 A
t.seth(30+ang) 旋转角度
3 @& O7 X& W! r8 c# k4 B3 M5 ~
7 x" M; B3 { N9 c- V3 y4 z1 b
& C$ V+ p) h$ [4 } t.circle((14/200)*len,180) 画圆 2 L$ z6 R$ p. Z+ ?
5 u/ _3 }% Z9 P5 ^& s2 [
% D. x1 \; q8 b$ \5 m9 h: o
t.forward(len/2) 向前走这个长度 X* |: b$ k% R
# e6 C1 r4 g( c/ S* J
! r4 k }' I: E* e* O t.end_fill() 结束填充 # J& C. a. g9 R7 G* i: ^
% p K, `0 Y; u0 r' M
% {+ O3 Y5 l. ]
for i in range(12): 设置循环i 7 Q5 v9 j2 `! I3 D5 s
( Z" W" }5 ]; t$ S, t, L 7 M. h6 r" d" { @) u- @% G4 ~0 `
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色
0 p5 P, i7 p. r % C5 M) I q7 m N
x+ g, j; l* I( _9 A; w cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色 ! `6 w; R4 L5 c5 ~ ?
8 F9 p4 m) G. w2 K $ _% ?6 h; }& n8 X
t.pencolor(c) 设置画笔颜色 ! g5 R+ ^6 P7 s! D: x
. \7 M Q. C) O i/ X
! K$ }5 k F2 e) w' t5 A+ x- H6 x aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
' c i0 x8 v; e/ v( {! j f2 l! [5 c; o
1 @0 N, Z" ]. ^/ u0 {9 I: u# E
h+=0.15 设置色相
* Q. d0 L% U1 `. ] - T* B- V+ F9 ~; J) @) p
: P3 F1 C. p4 C" _7 F9 D' X
t.ht() 隐藏画图 # H5 s- t4 ~8 ?2 g6 I. y. q( _
~ f Y7 @( X& G$ i + U' N: V/ x3 F8 G
tu.done() 结束 3 {* P( ?: K% f6 c) m I, u2 N5 X1 c
$ V/ m. _( u' B- C+ \ - G( Z3 B8 H, _; J, p
! ~5 U' } O9 b4 j6 `) h1 D
! p2 G9 Y+ g0 p
c: D2 B4 z) y7 k 源码如下:
. q; ]- w. F1 u" R* A
- h/ f5 ^* u D3 P& y' [5 Y
. V# U- w+ x5 B' q7 s& V import turtle as tu 7 w/ g$ S" G3 P2 P% w3 U
# O& f, g/ N# S0 Q/ D) a $ s K- m7 e8 C W
import colorsys 1 b \* O( x3 I/ o& Y3 b
4 C) D2 d6 e9 P- E
& ~8 i0 }& {& m! h7 e8 h. {& _ tu.Screen().bgcolor("black") * J9 F( c+ _. {, _8 O2 S( e
- U3 T8 y! f% y& x2 @- Z# ^ " T6 _+ {7 w, S. M3 |* X
t=tu.Turtle()
0 I* t, ] u$ R( d- G: n$ | # A0 e; d S) G# z5 ~
0 M& Q+ j, d! a: x5 X* X h=0.3 * A" D2 z% G% \) L
6 J6 S) c# k- M; ^
) X! x. C: L; Q. Z/ k. f$ c def aaa_coder(len,ang=0,cl="#000000",c="black"):
% J0 L% r' U: U" s * h6 M/ o7 T) D5 p( _3 ^
5 M: Z( Y. J4 K t.seth(ang)
9 r# b. ?% R7 E x& b+ r* a) Z 9 n, `" Y" ]8 U
2 ~ X, Y+ b3 j" Y2 M. w0 f+ b& S
t.fillcolor(cl) + J0 v1 m- M, k1 A+ J, h1 C
! ^" X9 a6 F! c$ @6 v2 i' m
# k1 T: l9 z" l p$ k9 X3 @
t.begin_fill()
+ |0 v6 l& C: N; A" W, f
1 v6 r+ T; l& `2 a* F- [2 | - R% H, N6 z+ M3 s) _
t.forward(len)
6 h$ a/ c; b r 8 h* ~( I% \$ r9 @
$ r7 m7 d) m: d1 ^6 b% C t.seth(60+ang) " o% s1 K0 }; J2 \# N8 C. Y
8 p+ P7 F1 P. S7 s% x; x- x 1 W& F8 q g8 \% n+ @, k
t.forward((73/200)*len)
8 a( Q# r* n0 D7 | 5 v- j& m( T1 V
1 z4 c6 A4 J' n( ^5 O" i4 t: d t.seth(150+ang) . h, s4 _% T* h
/ D; ^5 }; F0 E. h3 r- w6 n " ~; Z+ N( F7 r$ b/ ^
t.forward((73/200)*len) 0 Z/ Q1 b6 @3 G+ R- b; x2 X, w
- L* Z8 N# b+ g" `1 p5 D. Q
. Y% Y2 R& Q, g- @ t.seth(210+ang)
6 @8 a7 j1 y2 A& N$ |- C L$ f$ G
! O" C5 O& S1 C' b7 |* Q p
5 {0 @, [$ l. h4 }, l t.forward(len) - ~: m J7 N; _: z% d* L- f* ~8 @* G0 v d
1 P4 i, d0 r) u! X7 W& ~, ` ! z6 f9 V; ^8 ]# n5 r
t.end_fill # r6 b/ \+ y+ {6 F. w$ p
& H' A! u8 e& o6 o3 u
( l/ ?5 d8 W3 \ j t.fillcolor(c)
( ?* ` j$ C/ ^. N- F& D/ m + S$ \% y' j6 K, `, S( J
1 X. Y" Y, @5 c' l t.begin_fill() . o+ m" d2 D2 K* U' l5 f- r! j
$ r) C9 v: @, T
( a) a. {# e* T" r- F
t.seth(ang+0.01) 0 |1 T8 s2 l# R/ ^" s+ ~9 P
3 I& B/ W1 T b! J
# A7 ~1 |" g" c2 o( f. M
t.forward(len/2)
6 c8 J3 ]* l# U; U, q4 g7 N 5 A/ ^3 z f( s+ G3 ?9 x, ]
! t& Z: O: ?: K6 e# L7 ?
t.circle((13/200)*len,180)
0 ~& _' w3 m% L' Y
0 V: S5 j$ E. _. c# B! \* C$ B
- i* Y& f( B2 q, y9 |3 O2 V t.seth(30+ang)
1 h: R- U8 _8 V' J9 W& H/ u- s6 b
+ ?# a% r: K, G, f* T
' s. j# I4 G# E) Z* N! V t.circle((14/200)*len,180)
7 y) R9 |: z5 K5 F, ^: ]: p) f, M4 H% w , K5 ]2 G X! }
3 F% [) l4 b8 C( z t.forward(len/2)
7 a) X$ m- p, S( W! D5 W 2 F* s3 U7 t- c! w* [
. c, p" m. l2 r* [) a# l3 [0 V t.end_fill()
; y7 x6 k$ f" i7 [4 K; C4 p
% I6 T9 u/ Y* j# d* V# D& P
& `' P* v3 A* w* M1 P% b for i in range(12): 4 E. s4 i$ b- d8 `* ]
. o4 o3 F* {1 T! o2 d$ B( q% F9 m; |
. S& q2 K/ ^- ]$ D c=colorsys.hsv_to_rgb(h,1,1)
; E6 W; |8 H' Y* ], u! } 7 a$ w6 B; J5 v" y. [$ Q
& M# ~1 p& r1 w: Z% z2 ~ cl=colorsys.hsv_to_rgb(h+0.5,1,1) & E; ~7 t+ Z' G. z
' u1 O3 d& U3 }. q! q
/ }0 j( G% I2 _3 s ]
t.pencolor(c)
0 W% L9 y! I: L7 B
/ l# T7 K5 [* w# z# G. [
8 [) v+ e- z& h aaa_coder(280,i*30,c,cl) . C! x. b" M6 c
: }# ^# m; N3 r! D u
. k( M% f; f& ?0 q# G' n) r h+=0.15 6 S! u9 n) ?7 }* ~) R0 Z& {. h
8 Y9 h0 c: L! P# Q! |$ j! q
+ W" q0 Y1 j) d% z8 ?: D4 _
t.ht()
' `* e; L o6 }. A
$ M6 x( u O5 O% T0 w4 ]9 f
' ^0 [3 r9 `7 p tu.done()
' A: U; U9 i6 Y4 u( D" c + r |9 T: @1 d* Q. u9 K) g5 {* U
4 R9 w( ]7 T/ q3 C; s! }
! U9 P+ x7 i) S* [( I9 R& B& z4 _
: E% C/ |! L: B) y$ q6 ~
' o' ]' E! f& p. V+ c& S 举报/反馈
, t2 ~% _3 Z! v* Q0 J3 B& ?( H
& N5 r5 Z# @; T$ L% K
7 L) S; `# B3 h
( h0 i+ y( Q: s2 }9 p8 ?7 u
% r6 Q' ^) t5 m" n. @2 R
( B3 N: ?- Y/ E5 n1 k" O |