收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

用python画漂亮的类似七巧板图形01:39

[复制链接]
) q1 |+ F4 c% b" G" m" ]: }
$ ^9 o7 n" ?* r: M/ k/ [
# v' i8 ?6 W' e+ M; \3 Y9 ?
$ J0 U- N0 V, b5 {/ H/ Y
01:39
n# u( d: P. E; @2 Z" S& u
?8 Z1 U: E0 t! w
/ _, I9 ~0 F5 E7 [4 N9 |- }9 J5 L
5 C: i2 J1 t3 ]2 o N
& M6 q: h( q$ S* _/ u

用python画漂亮的类似七巧板图形,源码解释如下:

$ r* |! N8 h' E9 V( N _
& R3 X/ X1 \( [' i1 ]
* P- x8 F- N0 C* V& U8 Q P# q
用python画漂亮的类似七巧板图形
" ^+ D: a$ K4 B @: z7 ~
0 G! ^ S, I' n* ^
7 \1 k% y2 `2 ?* s! Z* Y: v

import turtle as tu 调用turtle库

# K% Y7 f1 i3 N1 R' `+ d
8 k$ F3 R! F( s3 r7 {9 c
+ I! X+ M( F/ q- p( r

import colorsys 调用颜色

% i( ~# y" g: G" w' H% h- @
1 M8 d' @# |) V# i
9 y& m% ]# E) j1 ^$ S+ ]' [

tu.Screen().bgcolor("black") 设置背景颜色

P' [- I0 P8 e+ \# K
d8 x' H4 a0 K& V
# W! a+ {6 k- Y$ g

t=tu.Turtle() 设置t作为运行主体

$ n4 i; m9 Z" I+ D
5 `" x9 {/ ]: J1 c+ f
; A+ R& U; r, X! }

h=0.3 设置色相

, V+ D' |7 Z! e
8 ~8 g- `) ?- C$ I
9 j& ^7 {- Z# U5 l, |1 G% L

def aaa_coder(len,ang=0,cl="#000000",c="black"): 定义这个aaa_coder()函数

) r0 W- K& }% [( \: m1 L
# I) V" a- Y1 i8 X# g% L% ^
! @/ Q2 }; h; c( _& Y/ [; c6 q4 L0 s

t.seth(ang) 定义转向角度

4 `8 F* c! B, @" Q, q- b
* w9 H/ W; E7 {
3 |5 g, h6 L0 o1 o' _; @2 E

t.fillcolor(cl) 填充颜色

* e1 Y- F h: H; \2 G1 |1 X6 I7 I
7 N% Z; b1 s" r! _, Q) f+ b
6 L6 F) l @: F% c

t.begin_fill() 开始填充

1 d# b7 H1 \4 J' P" f5 Z
3 L$ P2 x$ t3 I1 Z
# j! Q; ^% b% y1 K( ?! o

t.forward(len) 向前走len个长度

! m! Q5 F1 B; ?2 h+ {" e/ B
& ^/ z: D* Z3 j
- x& j/ z4 m6 z$ `: ?. H D$ I, z% k

t.seth(60+ang) 旋转60+ang个度数

- H. p8 R0 Y, {" ]) b4 v
8 H0 \3 m8 e; V2 V: |- o
+ u6 l% Z1 b6 U

t.forward((73/200)*len) 向前走这个长度

4 P0 d+ h4 P4 g8 P
; M5 `. j6 {% x& [! a
2 Z$ d6 [9 |0 X0 ^' J

t.seth(150+ang) 旋转这个角度

4 y s1 E! ]( W$ D2 _; j
! I$ p4 k+ J, O: C. K
3 U( r, B: z2 U4 l

t.forward((73/200)*len) 向前走这个长度

, L+ ]' |6 l& K/ Q" \) m# Y/ J
1 g$ n& V8 g3 e: G, H- \5 l$ k
2 K! s: r v0 C+ j4 M; g/ K

t.seth(210+ang) 旋转这个角度

2 x7 M5 M E. X6 h3 |) P
, K' E* [$ {! J+ r
3 x* Q+ h% \- I$ D: H, O

t.forward(len) 向前走len个长度

- \( b+ S( `+ C; s$ P5 G, r
6 }( J/ D. b! E8 T
# x( Z, l7 G" s

t.end_fill 结束填充

' k% |' D9 ?: {0 }7 {: ^4 H
, K: F* C1 A0 I C
. a5 g; a. D9 b: ?- `

t.fillcolor(c) 填充颜色

- @, Q7 K3 S8 x" X
9 M4 V9 E- m8 p1 l/ O
3 I) ~8 U9 B Z, N$ s2 }; \$ r( s0 q0 O

t.begin_fill() 开始填充

' D4 |# x2 J {" N
0 M* i" S9 }- F% [+ a: p$ |; ?3 s& n7 _
& w# \, w, T& F+ e, T: d+ z

t.seth(ang+0.01) 旋转这个角度

! x5 `6 w; N- h: D8 f8 W# I* S
" o- d: a% P0 y$ f9 c5 n3 s
# Q" s. q8 F) z- y4 T6 N; R

t.forward(len/2) 向前走这个长度

# F: q& v _0 e6 q0 n
/ f Z H M* f
: ~3 G6 x/ d+ @

t.circle((13/200)*len,180) 画圆

P. l7 Q0 \9 o0 o7 u, l. t! v
2 J, w9 G/ K6 b' O/ P* X
7 k" q! y; U# t8 J# S/ N- |

t.seth(30+ang) 旋转角度

. n) s- O" J ~* J6 y$ Z) p' ^
# R4 Q9 a( z( C! j! G
! ]6 V/ k. Z6 a& U/ \

t.circle((14/200)*len,180) 画圆

) }: A3 [1 d3 s- E6 ^& \! y
+ w5 m, G# }& y7 a
! p# c' L/ f) C! k% ?' I) ?& F

t.forward(len/2) 向前走这个长度

' {" H: g/ a# K1 ]* J4 l
]# b! B* G$ r) |
3 @; r# Z! ^1 i- E/ a; g

t.end_fill() 结束填充

0 r; O& q& A f i8 T5 m( w5 m
I/ v" ? J) G
& t0 c- b; ]3 @

for i in range(12): 设置循环i

: W9 _' X" k" J" @9 M# b6 t
; j3 n* T7 R% f) _; N
0 [: ?% h% L- j* ^4 ^. B* z7 m9 e

c=colorsys.hsv_to_rgb(h,1,1) 设置c颜色

! N: b M* k* B
: J4 ]6 Z8 ]5 k! M6 a
) j, v" o) Y$ A1 T' Q/ x6 b! H

cl=colorsys.hsv_to_rgb(h+0.5,1,1) 设置cl颜色

; ]& x$ u( R4 s$ B
) j0 T( \8 J0 k% y7 Q
& D; _4 n7 [9 p1 ^

t.pencolor(c) 设置画笔颜色

2 C( u% e$ j: _+ t) H3 A! N
: \) p& e4 ?0 }- L. d
( H* I( J6 m) G% g3 e- x

aaa_coder(280,i*30,c,cl) 运行aaa_coder()函数

8 _ y% d- W% s3 \# }
1 V( h: |0 I5 Z5 R; Y
9 @; N9 e R! ^+ W2 f6 c3 O

h+=0.15 设置色相

0 }5 U* l5 {4 j& f. l- L
6 e: z, O; F4 {) ~" ^
' s( h: ^! z- v

t.ht() 隐藏画图

9 F3 ^9 {. T6 h
9 h6 ?% M/ a# c& X; `- O
4 \& V6 r3 G! k* d

tu.done() 结束

( l; P7 T9 p: a5 j
- d" B9 W( A) J! K9 b
$ ?4 r7 U1 A, K& h, @% ]
& Y6 _' B9 T- x* m9 Z! O
3 F5 N' L( z. \3 c; F7 }
8 D' e u9 ]' M$ M% \% @

源码如下:

& p6 F- S+ z [6 J! [/ _/ D
. x: M1 H6 Q2 M2 Q9 X; O2 `! j8 E' q
3 B- J- X2 E+ G2 w5 K4 d' o. n! K

import turtle as tu

, l6 n- ]1 v7 ^& ?* j0 y
8 o3 }& z) P- Q% V6 P
# ~3 g3 o' }/ h/ I, ~5 n

import colorsys

V/ g# {8 C+ t. J5 j6 O# P' N4 Y
_9 _/ q9 _" }" z$ r
# i( a$ h% [* E6 A& o# N

tu.Screen().bgcolor("black")

" U* _- l7 m7 C' n
" J% e" a. |. F: |7 t6 c
8 e8 [% p9 j' ~6 r& U7 y4 P

t=tu.Turtle()

) Z+ ^- u/ Z' c, ]1 ?! V1 K
2 Q. i8 q' J a1 h: T/ s
. q2 {; e- y/ z5 q" r' c! G

h=0.3

9 P' t3 ~, z) R8 L8 ~+ l$ E
" y* o; G( M7 g3 x* B# t
. c w. p' d- M+ M, w V! N

def aaa_coder(len,ang=0,cl="#000000",c="black"):

n8 L+ o' V6 C; R& t
0 \# J" |$ q5 @% T4 H- |5 a' z3 F" B
8 q \# q4 l5 w; d+ E

t.seth(ang)

) f: J- |+ x* Z/ d
2 n7 G1 K5 c- p: Y, e
1 S( l- k# a. H! F1 H. U

t.fillcolor(cl)

! G* Z0 d# b" a
5 _# v5 m* _2 Y7 G9 t: ^6 z0 V5 p
$ d# \9 {9 v6 i: s, L, i

t.begin_fill()

5 {+ q5 [! {# l( ~( o3 v
" P- v# }4 r3 ~
. B0 Y. n M1 N/ s% F: K, o

t.forward(len)

1 U! |; X* m) u+ \! x1 F
1 g; J* V$ e2 h% R' h- x- \
' O9 \: A, h6 m- _6 k" b, D/ Q

t.seth(60+ang)

% l( T8 u7 d3 I: ]! h. v- S
) i3 a7 E# q# w! k+ e p
& I3 L% q+ c' n/ y

t.forward((73/200)*len)

. o4 H7 l, }5 h5 W! p# X* v5 [
, E4 X B/ E; K% f" V
9 V) L( i! J6 `0 \1 U* A

t.seth(150+ang)

' e. K* b/ X1 S! I4 L
3 \4 A. F- `/ j5 h9 l3 N
' L6 \; l6 q8 {% O$ W7 p/ T

t.forward((73/200)*len)

0 i' D5 s! ]# O. S) d/ ^$ [- L
7 ] K8 O1 m( `9 K
; ^7 p* u2 @2 D- t8 ^( k6 ~: {

t.seth(210+ang)

' l) y' j1 O5 A2 \8 r- Z
/ a5 ]; e& t" J! n3 Z, ]( ^; b
6 v3 n4 c4 ?% H) m1 A- A

t.forward(len)

: n4 }! @* ~& r' ]2 C0 V& O/ Y6 f! o
. \# g$ q. ?( v- u. s w; b" |/ D
- [# w3 _1 k7 w+ h$ {

t.end_fill

& s; j; l n/ @: ~+ C6 X
: U5 X- n2 z; E# x# E1 o
, g0 B. \2 G$ ~/ U. o0 }" c. y

t.fillcolor(c)

* r7 \ t) f+ ?- B" d% F% H9 p
! n i- P+ e( g5 N. D) K4 k0 E' f( n
9 W5 _0 _! g% F" x# s

t.begin_fill()

k# G: ?2 }$ E" T
: k- r9 } F. Y- c6 Y
8 w5 j. t+ u |1 K' U W9 U

t.seth(ang+0.01)

& n7 e# z+ Z( C3 O
5 I# _% `$ d* h- s4 [* x% Y
! C# A& C3 U" D4 G: e4 z* j

t.forward(len/2)

- p3 q* `# d/ ^! h5 N9 ~8 w' @1 u
& ]6 _1 Q! ]: P* f* C6 j" P% g7 ?) q
' F. S# O0 _% B

t.circle((13/200)*len,180)

! l7 m v4 V; \7 i: a+ O
% j8 U' |, \3 M5 ]" \* ^2 G
# y1 R5 E$ X; j9 J

t.seth(30+ang)

/ @3 c9 u; r; i. ~# X
& ^* F7 k6 g6 z+ F
' n* c9 e% `0 `1 I% z

t.circle((14/200)*len,180)

- L- u$ h7 U" ~0 L) d7 w+ \$ C
6 D$ D) p: ?2 i: ^1 w
+ n4 f) t M, j1 {5 f

t.forward(len/2)

5 }4 D* \: o0 ^$ h. C6 J9 m
) |8 \5 _8 r0 p+ g* o/ \2 h
3 N( C; |) H7 ^$ p: B/ o

t.end_fill()

8 D5 `0 E/ Q& w$ V9 b2 e
, m, \0 C" L( D) @; [7 Z
! C8 q7 n) O3 }$ h

for i in range(12):

6 ?+ R( Z) ^3 c4 }# D
" U9 M7 K% f6 \
% {4 [- I2 A2 K9 O$ m

c=colorsys.hsv_to_rgb(h,1,1)

8 F$ l$ f) }$ E$ j+ C+ f# w* |
7 [# U4 V0 K n6 z+ b& G
% g5 k9 W N2 S. L7 }' e

cl=colorsys.hsv_to_rgb(h+0.5,1,1)

! w! @. k' `, [5 g9 X
7 K) H( [" w0 s# X- @) ?4 K. j. Q
6 |$ m1 f* G& W8 N9 E" p; |

t.pencolor(c)

" Q1 L7 y2 [. u7 z' q
! A* u5 {/ [0 k# s6 o% O
3 {( Y% T1 C6 Z& N( F* V: s/ [( Z

aaa_coder(280,i*30,c,cl)

8 w' T# Q6 x+ M
1 H# f9 F6 `* f, f
7 w: j" n9 {7 v; `

h+=0.15

/ k) I( F2 l+ V
2 \ f( C. y1 ^, Z
% f% I5 |. U s

t.ht()

+ }0 i, H' u7 Q
* k3 t7 h7 i! T5 n) k% T4 }
0 l; \% ?$ }- ]8 U

tu.done()

# y% I0 d+ U. V" b: S( n1 D7 K
+ s0 ]- w" G( @' y. X) V7 K' y
% S; V5 g, e$ Z+ S w) x7 d
7 \3 z* R/ R0 P1 g* Y3 C
& _$ a8 J1 d* t6 ?
" {" n) _" N5 O! h" Z, F
举报/反馈
W. d" |' P; K3 R
! }8 w; a7 D+ o% w( k: ^- t . H, L5 r& e. E& m7 H* q" ?3 p# H X: n 6 v2 j9 l/ S9 ]1 [ 4 ?5 u& g& }, m5 m5 X8 Y
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
文星雨
活跃在3 天前
快速回复 返回顶部 返回列表