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

[复制链接]
; g8 K- u$ D' k, a/ B# r
" p4 N; }1 t4 J2 N
$ l, \/ m8 s; Z5 k* w# R
, R2 l+ k. L" z, i( ?
01:39
3 h& W, G9 G7 u* q9 d* ]
- C3 k. Y% p' c: Y
5 O6 L0 Q+ [- i/ x
3 |! ^* b6 F' g. x- x* }$ P
1 `8 V7 ?* _8 _6 N; a; @. R

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

6 [/ c+ P% v2 }: R5 X! a! B- }
5 |9 T! n8 `% s" j8 }: o& _
6 j4 G- H3 P" w0 s- \
用python画漂亮的类似七巧板图形
" [ m7 n* e5 i8 V2 ~& [7 h
* M7 t6 E" b7 {5 V
4 c0 x- C/ W- j% X/ o- {2 F) a d

import turtle as tu 调用turtle库

) i) s2 x' z2 y% @ `7 {
8 S' e3 p+ ]5 h
1 J2 Y# |7 ?& V6 S# B& h; z) J

import colorsys 调用颜色

' [! t0 g8 Y; O" W- T
`; V4 C2 O5 P1 O) P
: s- W8 u' |, e! V1 P3 q

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

6 {7 w" S% ]* f8 j4 T; d* N6 p
. X& V. J: Z* m( T1 ~+ p
" H2 G! i) K0 @/ O" N2 k

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

! s# n6 T* W+ s' C# q
T7 L- h3 r) Y7 _* Q
) a7 j( I0 Q8 F4 d' v

h=0.3 设置色相

' f: X* P% t1 P, d% o
0 y( @% i& s: |
( a4 y& \( v4 k1 z1 G( q: c1 W$ ~

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

# M, T8 `" Q6 r
# n3 y# S6 d0 T7 z4 k
! s4 R5 B# b* Q# g

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

0 A9 N+ ^5 x9 e: D! J) g6 }/ \
1 H A2 t+ {; A1 M+ J# B ^
8 D% w2 y- I/ l

t.fillcolor(cl) 填充颜色

1 W5 l8 S: d$ r3 _$ {! C- ?8 ~1 N
: W2 S% J. Q/ @. j0 G* w
, m* f8 d. e/ P9 J

t.begin_fill() 开始填充

2 b K9 u4 g" J. a7 C
* Q: ?8 ?) X6 ]* R! v
; G O4 k7 n& [( f, W0 n4 ^0 A# r

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

5 y% H6 I$ k1 r" K W$ R z% E+ ^ r
) t' k8 O' ^2 g- o
$ N E# y x) V+ ?5 O7 u( |

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

6 K8 N+ l- D6 D1 z) i& m$ c
: ~% ^& t5 d. `( e8 t/ f/ f* u. n
9 b) t$ T( c/ z1 W* z

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

) R6 X6 z: m: e- U+ J% B' F1 x
2 \* b P( g9 j. B. O
2 n6 z+ d8 h- A; ]9 e

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

- o) o/ R+ y. ]& X7 ?6 p" M
/ X* z8 U# W% d
9 ?& k% K6 G5 H! P& i

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

+ Q! K2 q2 r6 g7 u
: ~1 T e; S: I1 b: s2 _' b3 R
$ }* e; H6 M8 B

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

- @3 W2 p Q# L1 D" \2 B' c
& r. z# p9 V$ x4 u2 I6 P) _9 ~
0 r) F! r( p, [& ^/ F

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

# G; w" C) d# u' |+ C, K& t" t
- O# I' e! o# f) b
. C u1 J' m4 K& ~

t.end_fill 结束填充

) d' b- k1 @; v) ?6 W2 Z* r4 f
" G2 ^/ z2 P6 R/ Q
9 I* y `7 X/ x9 n7 S2 L& F

t.fillcolor(c) 填充颜色

1 i# C. g; ? p- v+ K6 Q) o8 y+ _
% A& u$ }3 u7 m+ [- m# {
3 Q0 H7 T' }+ A8 w& p5 ^$ V' l# K# f6 Y% i

t.begin_fill() 开始填充

, f# ?. F2 ^. c1 v! w, M" w
2 x8 m% S8 N# f6 @" K& C* V
$ e) ?9 l6 G! p# i

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

; u5 U) [3 x% c( N' ?0 \
, w7 u. b& Z K/ w9 R- n' T
7 G; c: g, e' r# J+ T

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

$ I6 l/ J/ {* }& X, N! j
2 O. j4 j$ b+ A9 I
* Z& Z! q" x) Y$ }% _' V

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

, o1 F& G8 p. A" @( v: F
! T; q, U3 y7 M7 G
) c% k: D8 T. s y

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

0 d H% ]% E v! A- X9 b$ _1 o2 d2 h3 u" u
8 p8 ^; V. t, a# S. W8 \' F
- P- |9 f* t3 {) y' v

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

# W4 x1 s% Z) Q8 P2 t
0 ^* H) m5 a% j6 {) O, Q
" `9 }0 Z5 W1 A: e! I6 o* j7 Y

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

9 p+ W& F: w y: z' d" Z* k$ o7 q
( x4 K6 c6 t- @3 ~6 V
, i% Z2 Y. H3 e% S& R e5 A& `: M

t.end_fill() 结束填充

' y" R; o! ~5 }# y0 G9 _* V" r( [
/ u: l* k4 G6 _
% K+ `- t4 m9 T' x# h" g% Y

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

/ C3 R: D! u; d+ `/ V" C
4 N+ a- L: T( l- @$ Q
4 {- ?4 P9 h7 T$ m8 V* v" p/ i: ]: ~

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

2 d2 X1 S% t. Q& `) @" Q" s$ x
+ k4 z' _0 t( H* E
' X, n( p/ D0 o) m* h$ _

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

- ?" q: O) D6 y# y; h* Y5 D
# I. x4 P0 `3 W+ f7 I
' @' B2 N3 j$ a/ |

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

. m6 j7 l n. k- e' M+ @1 U
) Z* z; Q+ K- V$ s2 M# V
$ n; ^' r2 J4 q: E' K# k: x7 r( }! |

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

1 M( G- f) p7 P3 D0 F
; Q5 h; o X1 T6 l6 R/ k
& q5 \. [ U: r4 v( \# u

h+=0.15 设置色相

/ [. ^$ g9 k! j
4 i' `8 N$ u7 z. Q
$ V3 J0 Z+ z i' R% A. _' B

t.ht() 隐藏画图

% v6 n$ p7 O# B R) x7 S
( f3 M$ C. ]9 f! g: g
5 G( p. d. d* ^+ N$ R. f

tu.done() 结束

$ a. N4 V1 f2 \: K
/ U1 [9 u- _. l6 ?, H6 x; Q
7 q# ^1 K& j( P$ Z1 U3 h. e u( F
7 y1 Q8 j2 {, @2 T9 R' N
7 ?7 ~9 F" }/ i
2 s4 H) A0 N& @$ a

源码如下:

7 b1 l" J4 \& ^3 H0 J
9 v6 E- Q+ S3 O
2 k6 ?, r* d: R/ o+ N; X

import turtle as tu

* n- s& l4 L$ d- c
8 L- j, d% m$ D9 o- y5 j2 S- j
; }8 X; W" h5 B$ {+ p+ e9 j

import colorsys

7 t( E5 Z7 e6 O% ]" e: v
$ p, S4 ]0 u [$ o& g
7 K8 O( ?. Y) T( D) B

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

6 m, T1 Y' w$ W8 d% e" J9 g
4 H' V5 T/ Z4 I% ]2 q
4 t. x3 R& m- m2 t) G& _

t=tu.Turtle()

# J2 \* N& c: k) f: s( a9 a
7 s+ Q4 q( P- W& c$ E
7 S' X7 g% r5 p7 b

h=0.3

]" J0 }. g: @& [" s
) s# R! r6 c* ^, g) \% P% p
5 `% H' \ A& P( `% [

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

5 H: r/ j7 I p. E
. o6 F m7 {! x$ }* A! V
9 @* N) ~6 |) {/ Y/ k* S

t.seth(ang)

3 i. q6 Z6 [; z" c0 T* z
- C0 C) g& m) R% l# ^
$ b7 z! o _. y. Z% K

t.fillcolor(cl)

$ m* ^+ G: p$ ~; q( D- h/ E' y7 Q
; ~% E+ J4 T3 b5 n" R1 [ }
0 T" [# ]0 l7 f( X7 b! @

t.begin_fill()

8 B2 E- ~6 \6 ~5 e
0 |; y1 u/ r7 V$ S2 }; \3 b K( Q6 ^
2 O' z7 F0 r! i, l- l/ ]: g0 E

t.forward(len)

6 l1 u5 S$ F, L, n0 P; A6 S/ \3 m
2 ?' j# z7 C5 b; E. p
; a2 c8 a' N3 L6 J& h" }

t.seth(60+ang)

+ w1 w% j, ~1 d2 ^) P
! O" S$ j1 n% B2 i# S! k
% b* n& ?6 V% d# o

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

2 M9 c) P$ s/ l! a
0 T; a3 k2 k0 m- W- {$ z* f
1 I+ U5 c5 U* K% m

t.seth(150+ang)

/ X4 L$ @, k# H; O: f
/ n5 d$ M- v& U9 J
, A* p: p7 T$ H- p& z

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

+ \ |" b7 u4 V4 p( h
7 ^4 C; |! T% w7 A# m" ^
7 v, {% Q) @( N6 ? A

t.seth(210+ang)

w5 m" w5 v1 B4 `3 {0 j$ A
' ?' I3 s/ G. I' J- i3 W
0 j) q" l O0 t0 W9 x0 K n! M

t.forward(len)

d( _/ a. U9 [, }4 `. Q# O( o
# r( l9 R/ [2 w' _) T/ Z* n7 t
- q5 E8 b% X: V* J

t.end_fill

! s" k3 q$ g% q! C& _
: Y. m e% F$ M0 l+ O3 i% z& X
0 d' W! E& H8 \& p7 |

t.fillcolor(c)

& E( u! f: y9 U0 g
# u# j" H" N# d t$ s, M! K
6 x( C4 s ^ E: J3 Y9 u$ E

t.begin_fill()

# V9 H7 y0 x I) H3 L- H, F; S% G' M
! k8 D& R4 ~# V! R
: T( o- S) ~+ g. R2 U- L

t.seth(ang+0.01)

# h! h0 g0 S& d' W
& d% }- U0 ^% d. }2 N5 s/ I/ ]6 Y
! w2 J# J. f' I ^2 K! Y

t.forward(len/2)

2 C# N/ G( V; ~5 M! N% R$ }# V
/ E5 x& K) n& V5 R' d0 i
. Y% q- l. ^1 A/ d4 q

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

6 M+ j5 j# P# N/ d
# v3 p! a7 T8 `9 t, v0 s) n9 ^
# u1 M5 D- P% a! g

t.seth(30+ang)

5 q+ ^! n% Z% K% ^# J6 h
" l6 i2 I' s8 q* T
8 W' `! T/ G: c5 I

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

8 K; b- T9 C( A5 {) ^
7 ^. c X. {2 S+ d, \
9 M. s# B0 o8 I- d r& `

t.forward(len/2)

+ b& r. ?0 i- r3 W- ?! j
* F2 i9 b7 c0 a
) E& @' v, A( E* k- y# ?

t.end_fill()

9 r2 ^5 H% p8 w3 A& x8 N
) n+ m- G7 P4 K7 ~- q
' H* l' Z' }6 P. q1 N* h5 G* Z

for i in range(12):

2 L/ E) t0 w3 p1 Y0 @. V1 d
/ C+ ]4 m: x+ F$ n
; [9 l$ D- c* x; X! {) ?' H' Z8 T2 J3 l

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

3 s. a+ a8 P) Q' h% r
, l: J3 P' }3 n9 z- H0 o. m
$ N% F* v" q, p7 e4 O: i1 J4 S! d

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

* z+ Z& J& f$ {3 w8 {8 F
7 W* v, g+ a1 p, m2 X, v. w" t
7 m: z' q& Q2 C9 l7 w, Y F" M

t.pencolor(c)

5 T# K7 B6 x$ X) B
+ e, y% h' Z1 F& S0 a4 d
3 S( ]- B4 e& R) I( A) ?2 P

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

" ]/ X6 v% Q1 Y0 @1 ?
, J8 v- D( J9 ^ V" U
, ~6 u8 {5 u, ]! g8 s% h- q

h+=0.15

' s6 g4 y4 ?, o( _9 F' M6 r% ^
9 ~$ ~. [- h0 O# b" `
" ~) O6 a( v) D! A1 u

t.ht()

# n/ o1 t a* y4 ]% I
+ H' M4 ?8 v8 M6 ~- i0 R" p$ P
9 @7 g3 F! ?! Y; l

tu.done()

7 G1 r& j5 ?5 U* e g; G
# D: V4 n, v9 O U, w
. Z9 X K& K& d( S9 z
- r7 e! ?; H% v# y4 Q) ^2 D# H
3 @4 x$ S8 F# L
6 M8 p; g0 ?. m' c+ K3 u
举报/反馈
0 G' C7 {, z# a k
: y, [7 B) k7 M8 p* c9 i2 w - i+ a4 ~7 B9 m6 }! w7 E- H4 z; B( C) `# Z" { W+ M$ e * u3 _6 G! E/ O! Z) c& ^# I& J9 G4 _) b& u; n
回复

举报 使用道具

相关帖子

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