6 |( E3 l& l- @1 B6 u4 n9 `5 U
[* W9 b; Y, ` 2 ?2 R9 R; D7 C. X3 C
8 w4 k3 E8 o$ j 01:39 / m7 S1 r/ }/ N5 p' i: }
1 F0 f# D' F3 U' Z$ m" J
4 G s' \; I4 ?( n
9 z7 ^! d8 C* H& M4 z' q+ e( f0 C ( O4 `. d4 r" Q- W0 t4 G
用python画漂亮的类似七巧板图形,源码解释如下:
& N/ t' o' c# e7 o0 m& N3 ]; D + j. l* @7 J9 C u0 i" ~8 p- ]
% J2 L. i: B, ? 用python画漂亮的类似七巧板图形
( Q2 ?5 b4 ]( F0 B& x! {4 q 5 o* u9 F0 C$ I4 w
% Q9 X1 o/ L9 |/ X! a8 } y. G
import turtle as tu 调用turtle库 4 X3 a4 r' F A$ F# _
* g h' z" k" u4 b9 a
+ U3 ]) H9 A, _ import colorsys 调用颜色
4 g2 }3 F" c0 S% C! ^& B( V 7 O$ j3 i4 j1 l* T1 d+ e
, I3 A2 H- `+ s/ X& x/ y
tu.Screen().bgcolor("black") 设置背景颜色
2 ~& X% a3 r7 o" [ # x+ F2 _3 x' S1 n
5 o- ^5 l* R0 w$ l) O
t=tu.Turtle() 设置t作为运行主体 6 W, ^2 a& D/ \) }; c
: Y5 n2 c4 c. n" T
" j1 j9 N) N% a4 O) p h=0.3 设置色相
: D: N i% a X 5 D' |5 e8 j1 \% l0 L
- [" g" z' T! S6 Z) B: p
def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数 $ |' b( a+ j8 g' G2 L: ^& D
4 y5 Z& a* Q7 J* R+ B
8 N( |' z$ ~) d9 u" q0 f, ` t.seth(ang) 定义转向角度 ) t4 ~& q& n) M; c5 q4 \8 h
% f) y: Y6 }; d6 s! Z4 g
2 `2 H4 G) y; z6 X, {
t.fillcolor(cl) 填充颜色
5 n8 C$ O6 b9 D- Q' B . ^) k' y2 ?/ o
$ {6 H4 f2 i/ ~+ b+ E( Y$ E t.begin_fill() 开始填充
2 S& q8 x8 t- m( T/ Z7 ~& W h
# p" Y* T* [/ h; {$ i& c $ W8 o }" b6 ?
t.forward(len) 向前走len个长度 " J( Y; i t2 r; E2 C
4 R! a, K9 V9 f# N - ?+ a O- [/ f- F0 H* D q7 r
t.seth(60+ang) 旋转60+ang个度数 . v9 u) o6 h4 m$ \9 T
. U3 T* _* o# y - @" O* ~' r8 Z8 L) Q* [2 l
t.forward((73/200)*len) 向前走这个长度 8 J' P8 G+ n* S& z& ]
/ h7 G1 t4 s6 T$ i0 Z1 v. w
! P, ?$ ]+ K6 V# k. @9 Y t.seth(150+ang) 旋转这个角度 ( y; @' c9 q$ M5 Y2 ]9 }
( v9 r Q7 }7 |1 ^% ]: g; G7 C ) ~0 q5 x& r2 _% w* H0 r
t.forward((73/200)*len) 向前走这个长度 }, ]; Y* @" q# K
; e; x9 n2 [) f# ?: I& h # A+ q9 }% u( Y' S2 t
t.seth(210+ang) 旋转这个角度
. h% }5 _4 j `- f8 k3 r1 W
/ _9 Y8 I* x) a @8 D $ O6 U0 ~4 _( c" N% A' y/ [
t.forward(len) 向前走len个长度 0 V( ]1 Z0 {- ^+ K
; {8 ~1 V4 j& n; d; E& z3 _! g
: z" a: J: L1 e& z4 V3 S `8 Y. x t.end_fill 结束填充 * D+ ?" E# ^# l
& t& F, O9 e( `8 P6 g8 z' U
7 j) g; ]" P8 t& ^ t.fillcolor(c) 填充颜色 $ l6 n, T$ C6 o2 w5 @ I
; |6 @; q: `2 Z5 \ 7 L2 ?. c) r* D; x0 b
t.begin_fill() 开始填充
) D6 a8 \! s" N7 i) m- b# \
+ i# \7 x; n$ u- E3 [7 ^# X : v- A4 @2 }5 y* c6 m6 K
t.seth(ang+0.01) 旋转这个角度 J' U8 e3 o7 D* G" a5 F6 \
' Z5 E' t* m6 x2 V
" V: ^9 n) f# ~+ B& \4 p t.forward(len/2) 向前走这个长度
+ [% y! a* d, \* n7 y2 k- J1 s 5 S/ [3 ?4 t5 K. g" T
* h0 V) K# _4 C+ l
t.circle((13/200)*len,180) 画圆 e; }% p& U* r0 _+ F) B* N8 P' v
; `6 V' G9 }% E- t+ g " X1 I- j8 [% t2 [ W7 v5 {2 `
t.seth(30+ang) 旋转角度
# C% [4 N. q" o# ~. p * Z: ^' c# P4 S* [. B
- q- ?" j. |5 d: R
t.circle((14/200)*len,180) 画圆
6 M3 [! z6 x" d; T8 G* _4 ]
5 D1 ]3 v, K: D! e% O h* a " z! F/ f5 u5 S. @& X
t.forward(len/2) 向前走这个长度 ' U1 V6 T( \- E! K" F& i" n7 \
! e* P( t' q6 T" O. m
" Y k% Z, f, N! R/ F! p
t.end_fill() 结束填充 0 Z2 n4 q- S7 p
; p, P" \+ [/ W o
) |* L" M: \1 N4 X
for i in range(12): 设置循环i 2 _: u, M+ C1 z
+ a ?/ n) q* @* M) f9 W5 A
! w7 ]" ]# k& E" j
c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色
, Z8 q" ^) v y2 Z
# i. [) g4 s9 u" _) ?2 X" r# I : S4 l2 e* Q V' q
cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色
% f0 A- y# s7 g3 h% D; y j0 _ 8 J! {7 e k8 l6 d
* g1 [5 S5 z& c3 @: y' Z
t.pencolor(c) 设置画笔颜色 / G, n& \1 q& c$ g: ]
+ q& q: N5 x! I/ n9 [) p$ g
( _9 n* f/ H6 t8 j: [0 \/ Z: x1 u aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数
1 `. O! U! i+ p, s7 v * m# {: I4 @# u q' } t" z
/ c; F3 l. D/ \3 D0 e M# v h+=0.15 设置色相
5 E- z7 Q- S! U/ e8 a: p3 H5 Y
% |1 u4 Z8 M+ X& N- N4 Q
: R a8 ?" Y& |, [8 @ t.ht() 隐藏画图
5 }& C7 w% a9 p
* V8 W' L- ~: Y6 {; V" s6 b! K5 c
' i* r' y2 b/ q0 x( f1 l& n% l+ S tu.done() 结束
. G/ k9 {# e- V& K/ |+ Z' \9 @. m ' y7 ^2 B( w; `
! M( L: x# t% a3 u& v( A) H 5 f2 w6 N; Y0 ]2 N8 R! N
0 y. m' S" X( q$ L+ P1 F 4 f' O h5 `) p
源码如下: ; g2 V9 G- D9 x: @
' u1 v) n8 c1 M* R# d8 d: E4 K
( U: S$ i2 x V( ^: i0 `
import turtle as tu
0 f- ]& f% a& R+ p" s, Z; E( \" `
1 a6 L9 d# Z6 a3 [ V9 B
/ b! e% }3 W. Z: Q+ m import colorsys
; s) f9 d8 s8 T# d# o* V% @ / t) _, u8 }1 B6 X H7 v z( T2 i
* i- u4 p7 @/ ^ tu.Screen().bgcolor("black") # J0 }3 a; l9 R
" E* `; A) R& Q. `3 J8 F; N
( y3 Z5 V6 S2 E
t=tu.Turtle() 8 Y V$ G! {9 t9 q7 b
9 X% A, s; G: J" K' [3 i/ Y
4 t" u6 ~, n$ \" T4 @* b/ l h=0.3 o0 ~" N: s# U4 D. q
- s! q7 ^6 A+ b/ e0 x9 c- V
8 g: M l! ?, D$ m, s/ l. P
def aaa_coder(len,ang=0,cl="#000000",c="black"): " a9 x0 n# e3 J$ B, J- P4 X
$ X! R4 ]! D& i! D
: h+ H! a8 c: z- x: y" }, i3 ~7 F t.seth(ang) ; O$ s- d$ s6 x. V! \9 ^6 @. Y
. s7 Q* o/ D7 E0 p0 z5 g$ w! L- d8 V * G8 t q" P4 r/ C; F
t.fillcolor(cl) : g+ c3 _2 f: K
8 [) B3 n$ L4 n& Q+ |/ z
6 F$ k5 ]; G5 r) ?/ A+ u. E5 A t.begin_fill()
/ f& {) \/ N% U 8 S; d7 W2 M5 f
, C) d. K9 U9 K W t.forward(len) 9 X; z) h9 A. E0 W. C8 g) P6 A9 l
; L/ s8 {$ r$ J$ |, T 2 D5 p5 L0 a3 r
t.seth(60+ang) . c; |; |7 b$ a7 f( H G# L5 l
+ ^1 A. ~/ o$ d
$ F! \) g! \* V t.forward((73/200)*len)
2 p% `) o9 _3 [( Z5 I- F6 V- T & ?& l' \: }: p4 Y0 i
/ ]/ a+ D1 a' |2 `1 t$ s& \3 n
t.seth(150+ang) ' I3 O) i9 J8 V! d8 h. l! A3 r
3 u2 o+ G1 T1 q) q4 G
6 N+ M' g. x$ F( V; f# Q
t.forward((73/200)*len)
( j/ g5 j* G& j
4 n4 d( V& t9 G- Q# m; {
0 M3 _. O1 Z- b t.seth(210+ang)
# s% L* y- t1 B- c ( {& S, z5 U; g0 Z4 Z1 J% t9 Z& w
; F! Q% }: H, e: f3 Y
t.forward(len)
1 ]4 b3 R4 f! e: [- L
) o% y7 X9 v3 T l7 x) U( f( O
. p3 H+ r& }' r: A: q) a1 | t.end_fill ( U: i$ h7 R' x+ P e3 ^
/ W; A3 A' N- n; k3 H" ^% g- K: l! }2 m ' k: F, }; k) l; e
t.fillcolor(c) ) ] t& ~1 X! ^) a
6 ^! v/ j4 c8 L V1 p& U0 V # H) _% I! r0 j1 Y) V6 m
t.begin_fill()
7 I! h; Y2 N, A
) i4 i1 ]" P! R; H9 c: f4 F% _: A ( o/ A( d' G& ~: p# k; G: a9 j
t.seth(ang+0.01)
- M; x4 @$ q5 ~- M : a, c5 P- h7 `7 C! j* |8 x
. X7 S$ {0 O! U7 _! X+ d6 I
t.forward(len/2)
1 L& u* l' F1 v6 S, }4 V 3 T6 r. j( z1 R# |+ p
2 |' L" G8 o2 _
t.circle((13/200)*len,180)
; ?9 Z. b+ M0 ?
: N L- b# d$ g. \1 ? 3 v' j5 u5 F, v8 m/ l1 y8 t- ]8 f! }8 j
t.seth(30+ang)
# s+ V* T M% P! ?
1 f* x; c- w+ `0 {" |/ f 7 J$ ~% F5 N9 [" O; X$ L
t.circle((14/200)*len,180)
7 c7 u( b J+ k4 [ # }& h" G& z* D, K# ]
: M6 k# i- e0 ]( `! S t.forward(len/2) 0 h: I3 g, W u
4 ?3 U# |3 o5 h. C 6 t1 L; g1 o- j9 e
t.end_fill()
' f0 G( L* z- G/ Y+ s0 j+ o+ f1 {
7 @+ f9 W, h8 L6 H- i- t% `0 F( @ 4 W/ a& @2 K: G& s# u8 x v( h
for i in range(12): & \, V. N7 }* j% j' X+ v2 n
* [; p4 a J2 v1 r- l P( Y! ^* {
/ @6 C: t; A5 X0 m c=colorsys.hsv_to_rgb(h,1,1)
% U0 b! w; w7 \( k! K1 ? : e( \5 }. Q' e
7 v3 U. C0 s7 T% i. E
cl=colorsys.hsv_to_rgb(h+0.5,1,1)
}5 a& I* d4 a9 H0 c- }7 N" i9 M- y
# j2 M+ I( a/ I& @1 f! x% M
" n* C1 j& s$ r" B' z t.pencolor(c)
3 E: a( k2 H. g( k6 \+ {+ v6 s
P5 n' ?2 o2 T' P , x6 L& Z+ H0 L- p, m+ ]
aaa_coder(280,i*30,c,cl) ( i* B* M7 Q9 R
: D3 N9 q5 R c0 x* D' a
; k1 U% b# ?, F8 @1 h$ q
h+=0.15
! a8 v5 b3 n8 n5 o4 y 2 ?0 j/ G1 L% y3 i/ {6 O7 \6 a& m8 ^
; e2 a( W q) s6 ~ t.ht() * _2 Y9 m) E& U) p- U6 `$ G* z- x
0 Q7 j, P# Q, Z% I# ~
& N$ l3 n2 W- z0 e) ? tu.done()
% p5 Q; R* V j 2 q0 i0 q! C( \# o/ G' {' r
# l) F! e3 N1 x2 w0 D
; r" t- Q* x1 |) J3 z& C2 x* s3 F
' M5 |3 J7 ~ H% }$ s' ]2 y & ]' A4 n& Z4 i8 Z1 J9 K
举报/反馈
5 d+ S* S _; J( G" p% Q* |; _ 7 K8 K5 u" h8 C5 _3 W) l+ l
- @$ {" @5 m7 `/ e, c
) z/ b" G4 }: ?% F; D' g5 ?8 S3 ^& W0 i( |
( R7 k' T, Z$ b% x. a
|