6 Q K+ X6 V; A. d% M- Q
! _' S* o* b& i( O* j( ]; d: b
^" e; X+ R* Y1 |5 K
4 h& Q0 q* K! q/ e 01:39
0 N, G6 n7 D. w' P : A2 g" j4 u7 m M
8 E2 \0 M* D9 Z# H3 f# V5 L
2 b& u; x% o' R, x$ b' n" v
5 h b" v- ]# }$ \3 e
用python画漂亮的类似七巧板图形,源码解释如下:
: b+ g$ _$ B& e9 T. W3 j) Z1 _ # C) q: ]- ^2 Y5 a) g& T
0 X6 c2 V- K5 b: b$ ^
用python画漂亮的类似七巧板图形
! L+ P1 u7 ^7 E: j- k$ `% Y8 K ( l/ f* o" g! n0 [- B; [
7 ? `0 }, T& c' j" P. S# v' v import turtle as tu 调用turtle库
# ]# I T( s6 |% L& D2 c
% R5 L( r; h5 ^4 r! z , h; Z d3 z1 x5 @) j6 ~& N; J
import colorsys 调用颜色 1 F( X D+ u! h8 e8 S/ B, P
9 @! G0 x& G: l# w) y
' a$ c; \5 _) X1 O) S9 I ` tu.Screen().bgcolor("black") 设置背景颜色
% r: _" {: b6 T) f& {: H 3 d% O+ |7 F% G t# k
, i; k& ^" {2 { d t=tu.Turtle() 设置t作为运行主体
, I' O3 d: o9 Q) k% d : q' Z! O9 o& q& b! ?6 n0 H
2 K9 \0 y6 G2 y) y5 L" ~# z6 o h=0.3 设置色相 - z1 C) @5 ^& L- T- Q( b
# x# Z8 T6 Y0 j" i- z : u- @5 u- \2 j
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 # l# T% e W3 A$ F6 v8 L9 T; e
3 [/ K5 C7 I. X1 v : Q: J* u/ S6 w" `
t.seth(ang) 定义转向角度
% z# z6 _% B/ ]# m. ^ y0 x
, z5 R7 X+ q3 _4 V& k; i& E
; o( A) `) D( x r, J t.fillcolor(cl) 填充颜色
; ^8 o) E) @6 U! `# Y/ N) p 2 Y) X/ K4 J: }8 y6 e
, e% A0 g5 T% s1 f
t.begin_fill() 开始填充
$ v8 ]/ L4 M3 P4 S, O
5 @0 J+ q( B# R5 V3 q- U
4 a3 x* C+ I3 x4 B2 } t.forward(len) 向前走len个长度 8 S0 f# v, {# c$ Z4 p
3 [) f* v4 k2 H* X9 G/ f
+ `4 D0 ?: E9 b# ?* ?7 l) G. b t.seth(60+ang) 旋转60+ang个度数 : K) T5 b0 m; V! g
1 L! E ~( S2 f; T' d. n; W
9 `( D/ J; i1 V5 l C- y4 T t.forward((73/200)*len) 向前走这个长度
# b9 ~& k8 T( x
% Z9 R; v( O B [/ `2 @
& A' M M; v& X1 O( i1 R) J t.seth(150+ang) 旋转这个角度 1 k7 v1 [0 s$ P, s
. [0 l/ A' V4 K; g5 W; C: Z4 v
% _7 v; J8 {# K. ~. R8 W4 k* r
t.forward((73/200)*len) 向前走这个长度
_* X+ i9 C+ R% R) A 2 `+ A2 Q2 `6 S
* p8 G8 W; H- F6 c
t.seth(210+ang) 旋转这个角度 & H$ i# s' g. T t3 g& j
' R% I. S- s7 r" ^9 ^) b9 Q. c
! x: |" m2 H7 d' G1 Z w# }- Z7 l t.forward(len) 向前走len个长度 $ \' c5 r. ^3 [( I* Q
- C; V6 A4 U. b+ d7 D# u
; P0 [1 @4 o1 K9 R: F: w: s, v; t
t.end_fill 结束填充
" z5 A* _: Y( H% c' {
, _8 x7 F. T: D
; f6 H5 I0 v" v* s! v# s" R# `+ a t.fillcolor(c) 填充颜色
; L+ S; r& p4 R, E
# o8 i. g/ l9 z9 E* B
. p8 `. j( e) s( u0 V t.begin_fill() 开始填充 $ b" O# a3 j% {
7 ~- Z y3 O2 F
& y* U2 q- r' }. e) r t.seth(ang+0.01) 旋转这个角度 `" f& t2 t- o. a1 q
! `! D' c5 a; W
: c- w8 h4 B6 ~; `) ` t.forward(len/2) 向前走这个长度 m) v' i( f* \ b2 s, a8 A
' B% H2 s, z( w' o, s1 U* b" F
. r1 k$ U) T. M$ f$ T; { t.circle((13/200)*len,180) 画圆 & \9 l$ v+ ^) n
0 @+ E$ q9 x9 h8 h; e; @# e7 E& w7 y4 N8 B ) R% y; \0 i3 r6 F/ ?) } ^
t.seth(30+ang) 旋转角度
$ t+ N( R/ k% d3 D 1 x/ o0 e- W$ c& S4 E0 S
# W& n7 y, h0 S# \
t.circle((14/200)*len,180) 画圆
* c# D& r( O: |- c n + t. F' H7 P5 |- l
8 O( X6 r( i V) i# ^, @
t.forward(len/2) 向前走这个长度
4 l, W d2 H; R- W9 H: m9 W
) w* L# f) ^+ a0 F# f
* G# `0 i7 o2 ?1 u t.end_fill() 结束填充 ) x( C+ R2 e+ q; v; f# K ^, u O
' s$ t% ]8 `$ }3 z ^: o' U; g; z
8 v* V, i0 M) u, n, O; @ }3 a6 \2 K for i in range(12): 设置循环i
6 h1 [" {* g" m6 s! L* t 8 t( D6 U& I3 b* h( ?) C
6 g5 ~! K- V& F7 z
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色
" y$ O9 C. H* |" v# r1 X8 ]
/ L7 P' H. o) [
8 m: z+ w1 Y% P& j cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
8 R. b, h& D) u' c( e4 b" V 0 ^" P+ s& _" |% P& Z* q/ ^ S
+ j: |1 v7 \) q3 N4 T" ]3 q) S t.pencolor(c) 设置画笔颜色 9 G( Y- M! m. o$ o& d
5 U; z+ p4 X. V$ x8 C
( C& f( f* d2 |6 p aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
I% W: J% S9 p1 U$ H0 D 8 V3 d$ g8 E; o5 L* _$ Y2 L
* K" T L, p( H8 p: \* a h+=0.15 设置色相
, F6 X" i. k6 e9 j / N4 L+ |( u6 w) w$ h
9 Q% n# Q1 F- S# O& w2 ~2 B t.ht() 隐藏画图
) }8 k! b' b. c
; u5 ?# ^* k2 l7 n! R% c! C3 V" a . X! O' F; ~7 m- ]& Q
tu.done() 结束 & z$ P6 V. W& P+ P3 F
- x6 H, A& f! y9 d* `* v; g7 ] ! M8 J" m4 X* W! X6 A$ _
' _. x! t) z5 {, y$ m# ] x + }4 a7 O8 A7 Z! o2 H
: |2 @, r9 k- K0 e5 A3 k) Y 源码如下: - W" j$ @" X( A* J) |( ?" z1 I# J
% Q5 |# P& R. J* ~/ J( q
3 g& w2 J6 w. O0 G" _ import turtle as tu 7 i& r- s5 a5 {4 Z/ s- G
2 J9 L0 A1 w0 `( N/ O6 C) h, ^
6 |2 r4 }1 I1 X' P6 W2 f, F7 r4 n
import colorsys 5 p& _# q& x H; z4 p
/ O, N9 _3 n5 t k + l' g8 Q$ s$ h4 l; p8 v4 M
tu.Screen().bgcolor("black")
' u6 {: C* x+ \, @% Z: X, `
7 v! _9 V( z( V/ _% U$ }4 q9 p* d " [5 a5 p# N$ h1 A( C; P
t=tu.Turtle() 5 B* Z$ \( \ A& B, I
' C1 l- ?; R/ `: l . s0 o5 ]$ f$ r# m' i' e# ^
h=0.3
2 `' ?, `8 p" |; H' H7 M
6 N/ H3 r, E5 }. S& M9 @) L3 X 7 g$ ]* g% Q( n x
def aaa_coder(len,ang=0,cl="#000000",c="black"):
) d& {8 f* n- O( I! s2 `
7 m' s/ F. ^3 a k# v
. c. `% k, l1 V8 U% k! ^ t.seth(ang) 0 p% X- D) w, K6 @
# {- \: i" w) V4 D2 q' Q% i
! L0 a3 `3 T, t5 N2 e t.fillcolor(cl)
- {" }! @# s2 i# V2 p5 J 8 ?2 K- u4 T! T1 k0 q; d' _
7 L6 J8 j% P& P G4 x1 A
t.begin_fill()
5 i4 S. L, s4 w; z$ m 5 k5 o! ]0 }: g ?7 W4 _
* I9 o1 {0 r/ z& i9 Z& f
t.forward(len) 2 O" i1 ?) }1 r/ G r$ E
# }) C5 N5 c- \' U$ `
3 M( ~0 J+ M! I8 T5 e& ~2 T7 ?1 b t.seth(60+ang)
- d- W( I* A3 w8 Z. d( | ' |2 t3 M2 t1 k; p5 \% X2 l, D
8 ?$ K& |7 p% {) `
t.forward((73/200)*len)
% \% R r: T; f' K- n % H: U/ D6 f3 |; z1 ?/ v g5 A
: D; C+ K/ d9 ]* m# {( v t.seth(150+ang)
( B3 b# e: ?# f) j0 G! H $ m$ n- e: c' l1 V5 a) z
8 k7 o0 R# l: a6 v& N
t.forward((73/200)*len)
2 C& p( T- [. P; h; U2 [) d# E3 z
' \: d6 b3 c3 |& E- c b( @; x- ` ( G3 Q' z1 [$ R7 l
t.seth(210+ang)
% `$ ~0 y4 L& d, G, y
' f+ s r. d% p! x f 3 t0 l& J3 U5 o: E7 b( T6 c
t.forward(len)
" e) {* h9 ]# k3 G! s% Y 4 ^1 u# J) @* T& j6 s* L
# l% p* v3 ], }/ E8 @5 J3 M t.end_fill
* Z | d# D: T& R4 z' k! s, ?
0 U. N6 p2 d8 J2 J; x' A9 n. ?+ M- Z 4 l- L4 s, K: b0 e$ h
t.fillcolor(c)
; q0 J4 t2 v& f; _8 r 7 Y. T% b4 N, t; ^2 ?
; W) Y/ q8 F% W2 N t.begin_fill() ' Y/ Q/ @ ^* P
% m1 T; F5 P, \# K+ T3 @2 ^* U% ~
2 i% j1 S. t p. C* x t.seth(ang+0.01)
: d" w; ]% X9 T6 e4 P9 W4 n
1 V- b- s$ l9 P1 Y- G 0 F9 D# r; O# [, _ s1 C
t.forward(len/2) 8 _8 F' f6 C+ M$ a$ r
$ h6 d3 Q" v& ^& d
4 N/ K" a, q( x1 g4 M t.circle((13/200)*len,180) 5 l! ~5 |. w1 b; d' F& b
]. W- S2 O) }/ O5 F* b8 D
# W$ @4 d4 q9 s) D( J: J; O% m
t.seth(30+ang) 5 _1 Y$ n% O! {
0 z0 X4 }9 g6 w4 x # ^& D' k2 D, }* c* G
t.circle((14/200)*len,180) s9 `. y0 t) n5 [! L2 ~
1 o. v* B- ]3 w8 ]7 D6 U. o 8 M6 d8 h$ C+ c7 {0 D
t.forward(len/2)
. ~: M# q7 L. o$ M3 @3 \ / x; v8 X$ Q) B( k
* w- i1 r4 k5 D- |* h1 U4 R: y t.end_fill()
, {; g2 m) Y8 W+ ? y; g: @/ n; h% Q+ e
( i9 ?- }: H- K' P5 O) V for i in range(12): & F5 Q$ }1 D5 @' V/ K: M" G
, U: s- c5 ?. Q- c- u
% B7 G: A$ l" W' X c=colorsys.hsv_to_rgb(h,1,1)
; p' T* S' u. t
$ I6 g' G+ m+ |6 K: G x
" C: U3 X4 g8 e) K$ ~( A% c0 \: c cl=colorsys.hsv_to_rgb(h+0.5,1,1) 6 \5 H8 V! |2 e* h( a
1 r* V! z. ^9 u/ D1 u: r- l z 9 R U1 U! S) ?7 ^6 J* w5 i) y
t.pencolor(c)
9 ^5 E" g" L: H( C. t8 Q0 \
) {# p* G% ]" Y4 I
0 z( r3 J8 m$ F l; r7 y0 m aaa_coder(280,i*30,c,cl) 0 j% g" ]) J; k% b2 A
6 Q' Q# M. _3 X
+ ?! t) K! x0 F' \: f5 O3 j; S7 S$ P h+=0.15
/ `4 z' [/ [: k( B( [& I+ C$ ` + O+ h% I+ z. U# _+ O. C' a$ Q
4 S' v2 B$ ~7 D
t.ht() # O4 {" K* m5 K7 h/ x3 l
# {9 n0 [! D; \4 z( d0 d 8 N J* M% b0 R) k
tu.done()
$ m, h! }) g! n" I0 M/ I2 g U# }2 m
6 D% a( A4 B+ i
/ o' A5 R' v2 v! a7 @) m( ~
6 D+ r- E5 S6 u9 ~% I
' p' s- P+ H" g( {6 z / d; _. ~/ I$ _ v
举报/反馈
: ]% t. n8 K1 T2 [7 ?, F . i: Y' `4 O5 t* B
7 j2 \ {& A; y/ J* V$ ~
* c7 D8 d# M2 Y( C$ ?1 _$ B/ W2 C
$ X/ O" z# }6 F4 e5 A1 g: f1 P2 Y* d# J2 m4 f! U" l0 t1 W
|