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

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

[复制链接]
; T8 I4 _' s9 p) b
7 z8 K) c: `) F3 j
. }' `* @+ H, G9 s/ g3 a" D: w
5 y' j. s7 E" t9 `3 ]
01:39
+ x' I( @& U7 D0 L4 i
: j- T! T( n& r* f3 e
& k* f, h5 R8 P+ R5 F
! V1 L# f! _: w
: Z5 b' M9 F8 P/ }; T: n* J

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

# `- N& D/ _& F0 }
. v \! k& ~4 l* W! L
/ _; X6 J: c1 B3 O# m! l+ @6 d' J
用python画漂亮的类似七巧板图形
5 ?4 n& ?- q* o2 t
& P2 B( G0 M _) N6 s3 x0 q3 l' H
# \' A' w" s$ F

import turtle as tu 调用turtle库

7 I- O' ]3 i4 w# n9 E
$ j* f, |( }* R3 a6 |; G
1 v7 }# o. V' L4 x

import colorsys 调用颜色

. t" w+ p+ }: H2 _9 a3 i: D
+ Q" ^* T* ?1 U/ A3 q/ P4 r ^
; s9 r0 ^, O/ e

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

2 h5 M2 c& k J4 m- {7 |
+ S, A# W8 \; g3 J8 ?. z+ J$ z
3 Y# |& H$ {2 D8 y

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

" w* ]; U- \# ~% K/ J
' i; w" l2 ^! q3 k5 _
; U7 ]$ M2 C' N6 f( a4 p4 r

h=0.3 设置色相

' G& G4 p2 y& g: m- V% S
~$ H _7 {9 w/ f* N4 P. c
0 p, z2 w" g. C3 O" T2 a/ e

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

; L5 q' _+ F) p; X
8 W9 Q H9 G/ t& i
$ J1 X# y. u; \3 R! A1 u

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

" D' h2 S3 \* \0 c: Q
5 E$ G* x: A4 I% Q
; b9 [0 I3 j0 W8 m A

t.fillcolor(cl) 填充颜色

) w. v1 Q" H+ C" B8 {% e
. R- O+ @/ S% N( D& K
1 N' @ ]: I, n+ w; c

t.begin_fill() 开始填充

" Z, |6 F5 U- K9 F: U+ h" r
$ `3 g8 |1 J) {) T- j, a+ }9 i' h8 O
4 u+ ]5 I) r3 i% Z! R+ @2 f9 Z

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

* i7 V) U( ?' C# R) }8 E% k' U
/ C6 C/ g5 P/ r u g* g6 v# U3 g
) g$ v1 C1 }0 O2 {. G

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

; O9 G% `) g8 ~
, t/ b( _# B6 R, \ p+ s; F
1 T: a6 D# _' \% D+ Y' W* r1 V

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

& P. F; y, X/ t2 f$ F
% x3 c9 ~( L! O/ x% O2 K6 _
3 C2 k6 \2 X( X. o6 Y" V! `

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

' F+ d# O4 B' O2 W1 ~' i* f
* q7 Z0 ^+ x1 c9 }2 p# `& B; e% c
0 `; U0 a: h7 {/ H4 E) \6 h$ z

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

G- \. \- d7 ?) ?6 Z6 G
' u6 F, N, s' \
# _8 O0 x: b) o6 E0 v

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

- U& \! P- i4 ~" C {6 f
2 S) l5 X$ b+ g0 ^9 H4 x* \. L
3 e0 V; ~) V9 ?8 t) U

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

& O4 S5 \, R# ]( I- k% K
% \! t# e' j( m6 k8 d% T! B3 B3 a/ a1 H
' |& b7 t& p7 ]' U9 @* Z; I8 r+ t y

t.end_fill 结束填充

4 k" ?- l1 P9 e' J2 v: t" f
2 s6 H2 k$ V# M0 Q" e
5 }6 n4 n8 Z9 Y; c. f

t.fillcolor(c) 填充颜色

! K% ?$ Y1 V6 g( Q, _' z. u
3 G8 v ?% o- H, `7 ?# I
3 U4 e# q! D( L# v

t.begin_fill() 开始填充

: k' T% r+ k# `
: c0 z a: h; o* n% g8 ~: R( R
1 m! O; a) q/ p: p- Y$ t. K( c1 `

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

/ o) f# {/ S' `9 X4 v' |) r
% y& A* ^% L8 Y# l
+ B' W! w0 z' u7 A4 D

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

2 Y+ u) `* ]7 ^( \$ F6 ?
5 L$ ~ r0 G" E q
) E9 _" ?9 U0 h# h$ R# H

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

# I4 k2 U+ U9 D$ D
. q- e0 ~1 F/ }6 b2 _7 q
& _- J3 f) K% C1 W; W! |& ~

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

4 K6 ~8 y" ]5 J# n# i) p
) q4 D, e% m8 F3 ?( ?0 E# S* \; Z
7 Z" c" P8 D2 B6 I' R

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

% r3 \% R, q! p. e! U [5 `
+ |" M4 H$ @# U- p: S# A* n- M% l5 @% k$ D4 N
. E7 ~7 L; G# J Z* Q' v

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

% r( Z9 [( z6 R( {1 m/ s
1 @5 Z: N* `5 T4 q" w% |
- S$ c) C% H0 n7 P4 F

t.end_fill() 结束填充

6 Q' Y8 r- W% N
6 V Y7 w6 {1 V% J) z( r/ u
% {0 G% H+ u/ _

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

0 j O3 s/ F9 l" ]1 L) ] ^/ M, t
% m$ j- h2 ^; F7 |, h& [- E( C: Q
- ` F. I: e }; [( v( p

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

0 w) Z/ p1 y$ o
+ e- s6 q+ F y L
6 g/ ?* T4 d. E2 ~8 K; v

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

0 d: N+ I+ x, U1 |" h, q6 [
" }$ b! \) n+ A \; v% M' M( [
4 s1 B' K1 P. `/ l

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

5 L& v/ x( v9 h7 W/ S9 R, z
2 u3 K3 m- C! z4 j- c9 d
5 K8 a# L# Y" O g, s; q0 `

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

9 U/ G+ ^1 ?+ M0 J% E* l) J; A
* N' L m" e: d6 A1 w4 z4 e
/ M% O s! A M5 v1 l

h+=0.15 设置色相

' ]5 R5 L* e$ |; g6 Q( ]' g9 a
3 R+ A' e/ n+ g2 G$ E6 J: y7 v
* H w4 h, _8 e- _" t

t.ht() 隐藏画图

3 w* Y* T, _4 x. R+ P
5 l6 i+ s i3 [. B% N& L
+ d4 o: Y6 ~. X

tu.done() 结束

$ G' S$ f9 P" ?6 R& N
1 Q4 ] F2 W7 Y2 j, H5 y
8 {; C" }, v6 q5 Z" G, o
+ G* u% B' a" D( h, h
u9 _+ g# f+ Q$ R w0 s' ^
2 o( a2 N; z; H( I4 X: V# T

源码如下:

7 V* u* b) `9 D
* _, A- q1 j$ c$ S h R9 D {
. ?& g$ |: Q0 D3 ~7 m

import turtle as tu

3 J% w! v5 x3 s* x& D( ~0 L
3 l* F# s" {& `) `5 f; B9 m& P% f
6 H( v. P# u6 J* h& K7 a; d

import colorsys

4 A; \5 C6 ~& @' r/ `2 d
* t; P) `* f& e$ v& Y
! d( p2 C/ r# n0 X

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

& ^% A# [2 z) W* y) B0 O5 ?
. l+ g- D3 U7 X/ [ ]
% o( E+ `5 n: z9 V

t=tu.Turtle()

- |2 x, {/ v9 e% q
' P" R+ D ~ F! g* i
1 u7 _* \7 q% r' U; h7 w- L

h=0.3

$ U7 u; C# g' L, i/ `5 F/ h
& R. E" u D7 P
/ c2 g) t3 s5 A' L' f

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

) B8 n: n+ G0 W& p @, E7 `; ]9 T
+ T' k7 M9 K& @' ?
- K: Z, r) w- }# q' H/ @

t.seth(ang)

6 M" b5 e( H% ^/ r( ]" b
4 i" M* Z2 H+ N/ N( [" T% |
: z% \* J8 u0 H* j. z1 N0 P

t.fillcolor(cl)

$ g$ \! B+ W1 C+ }1 I0 S% k
' B9 X. g* J. F8 Q0 t
3 u: v% R7 @( ~5 V4 o9 X

t.begin_fill()

4 X) a! E; ?, i% w! |9 D
$ q3 w R! U2 @& I9 I4 Z: m
, B- C& z# K8 W2 D B+ |( [ I4 Z

t.forward(len)

- S. Q# ~9 v8 r; U0 O% i9 S& A
) ?4 B- h5 _8 ?1 E! @7 r% P# |4 ^, D5 \
& R! J d6 ]2 v* p) x! A9 A

t.seth(60+ang)

! j3 A+ h: V- V3 S
, b6 _2 @ D4 d/ t
/ u+ Q) x2 g- H

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

3 g+ n( V9 G% e6 h
( [" b# J! s- @4 R$ |
/ V( g0 M. _% A$ O- y

t.seth(150+ang)

0 z8 {9 n. O' R( Z8 R
9 p" n( N6 L8 W! d
. M( S. X$ y- y6 w/ v, f5 M: H

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

8 `7 c* x% W8 p& s5 x$ {
0 P0 {9 a' t& |4 l9 Q
- c0 Z% J& \$ t

t.seth(210+ang)

4 N- ?' i3 u. n, h: d
+ z; R+ H# T1 F1 \& U+ @
6 a9 a; M3 z5 }# ?8 l7 n

t.forward(len)

# j2 e# Z. E" J L: h5 G% v
( o8 }1 l# R' g' R! n h0 c
5 [2 A& Z6 J$ G5 ~& L

t.end_fill

7 ^4 A& o; x; ?$ A
% @0 k4 {1 v1 \ E" }- r# g
' f) ^# ~ O6 X. B% L8 {9 ]: W

t.fillcolor(c)

x9 `: Z. v6 x. |
; D; }. I9 D+ Y: O8 o+ M( d
; b5 p1 W- w% \% F! @. a" e

t.begin_fill()

* a( p2 d% V8 b1 @+ B
5 e7 N! \5 K3 o/ s& _
$ R2 m/ M' o1 U5 J! E9 f

t.seth(ang+0.01)

. ]' n) p& Z# G G, C ~
/ @ l: o3 d* z1 S. d0 j" r
% z f y3 [( t* N- @

t.forward(len/2)

9 t2 X) D% x7 F, f8 F
1 Y8 S7 X( m/ o4 J% A1 O h3 x" b
+ \5 \9 `* N# u& f3 ]# v1 ^

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

2 l, N, q) a, ?. d
& l/ v0 Z* p8 i* \7 n
' q7 D9 u7 ^; Z: N

t.seth(30+ang)

; I" Y7 `. X: q0 ?
& `* f8 q0 B3 T4 ?0 B
) m y1 j, _( C9 H

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

, v4 p1 F( M. W9 A
/ V7 D, j* U+ [4 u+ @( }
- S$ N. z6 D; s2 S( l; b& ^" D

t.forward(len/2)

3 m2 t- T* d6 l8 e5 [6 ^
S' m. _( w5 |0 b
. b: e9 i% W/ n% q& c# o

t.end_fill()

/ j j% e1 z8 n* j5 U) e
! K7 x1 e* G5 j# r, A2 x z6 s% V
7 s+ F( i% x: r, u: m1 N8 b' m

for i in range(12):

6 [; Y, {0 p$ e @8 T% W
3 m7 X% ?+ V# t/ c4 a- w9 o$ s% y8 ^
& p% S# d2 `& H7 S7 w/ T

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

% k& [0 O& r# c+ P3 Q3 I+ }
4 z( d/ G8 E: y* J; j1 A, ^
7 v; s! k8 c2 |2 ~' ~" T6 b B: s

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

& s9 n/ y6 p. h1 g, J- ^
) V9 q/ `% x+ O
& ~9 K, g$ K2 Z ]

t.pencolor(c)

, i3 ]6 r x, o) U
0 {$ K1 c. V. T e: x
2 S! y3 U8 c% }3 I1 Q: a

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

2 d6 X" d) t+ K4 O2 x
1 {! ]/ Y9 u7 q- a4 P/ ~
2 e) K$ t f. F5 `$ X2 ~

h+=0.15

0 s8 @* E4 Q/ @; U* F. G3 H
# Q; Q( g, ~: a8 D
8 S' z4 I( j7 c# W' ]. ^

t.ht()

- E! }+ T* n6 B% d& N9 J
- N& d/ h; [% a4 B1 R4 J
% J" i5 ^2 J/ k$ f( j/ d* k3 Z! k

tu.done()

h2 X8 Z/ C% t+ b3 s" U7 w
2 b6 e# u( K/ E5 Y4 J
! v: ]' |3 b% j9 h
1 O% k# ?- L/ w+ b8 u
) u6 }3 f8 ?& c' X( q
] j+ P6 Q7 h* Y
举报/反馈
1 w; v1 a% s" W
2 }. {) h, A. i, J0 m* Z+ G ( p' h+ O9 t4 a" U0 M3 f% z 4 f; p9 C& ^7 m3 Y) Y& j& U 6 {1 c* @$ q/ u+ I- H b/ N' ~ ; |' [3 z& D' F
回复

举报 使用道具

相关帖子

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