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

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

[复制链接]
) N2 s+ _! g5 s7 c
9 L* a6 v9 I4 y; H% ~
3 d0 ~, m) C/ u V
$ H- ?" d- i8 [- i; S
01:39
) g! E- D& ]* n
. C9 d. U) i1 t' H1 g
* `- M# c- p- F8 d+ [
5 D: u9 B' T$ i. S
+ {) V: A6 i c* j* W, S7 B

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

1 H. E/ o/ i* Z
$ V$ }( ^: z1 @
! l* Y/ [1 P) ~7 v8 o2 j9 Z$ ]
用python画漂亮的类似七巧板图形
5 l7 `1 [7 V+ k" v: U
/ o9 Q. U" F6 D7 o0 B5 _$ ~
: @8 n8 G" e% \5 U2 L" {

import turtle as tu 调用turtle库

, k1 q9 ^# p3 F p: F' c
% {( X: L4 F+ S7 J8 }1 o
( p& T5 {$ c U& T& l

import colorsys 调用颜色

$ ~; T" j2 d% y0 A; I# l9 l: F' J& Q: c1 Y
2 U5 y, X _& a; U% v2 \
( M U! X& c6 ^0 H/ M8 h) e

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

- z Z7 w8 l. _9 B) [1 Z6 f& b
# K0 u: z3 F* F3 a' L
5 `0 q% t1 R8 L" g

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

6 U9 O, T) A9 J( o2 s7 \* a6 m/ o' H2 Z8 T
" G/ J" E' z6 Q% e
7 {, ~2 i# P- f! e5 i- N& @

h=0.3 设置色相

; H% F) p; e0 X: n. b, S. G$ ?% v W
2 h2 {( ?' B, l% L2 F% J5 `* O
6 \+ R4 r3 s7 ^# v

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

' Q/ K' c% b" v8 A
5 V1 {+ k6 n) I+ ?; l6 p1 l
1 [9 J! s5 S1 l6 v

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

: @0 }! @% \$ F8 \8 x& V/ h% e2 V6 f
, Z2 L: K3 E4 M; _
5 \5 `. F+ ]7 V, \! [, @/ `& b

t.fillcolor(cl) 填充颜色

; f) ~ u+ |) ^9 I& X* G
: H7 n. o5 A/ D2 b3 K9 @8 E
8 [+ S* c, g2 k# e

t.begin_fill() 开始填充

/ s+ e$ ` t& L) M4 n, t
, J1 \5 i3 L+ B A! [, @. x" ]- ~
6 k+ ~( o5 C- w: c8 T, }6 C

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

% U; E' G! G. O' E# ]# W
6 ]" r% d( T0 U% Q
8 K$ m3 p$ z6 {9 a+ ?9 t e, k' x# r

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

' ^! D6 e2 U3 ]" v+ [
) {- v% y6 B% f4 _) N
$ O$ u) }7 ~5 h. ^9 V }

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

8 _/ ]8 ?* V( F3 {$ t. g
; R! @6 ^3 X. n
# K, s" [3 T' F0 R

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

: H; H8 H, M7 J) k" T! F3 _; ~! h+ _
# O% j+ I1 h* q' }9 ]
: Y7 x# P/ z, n/ W# b

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

& D; c% g5 q a' q, c* Y& z
8 {8 G. [$ V$ X9 g0 ~$ v+ e
$ Q7 ~# z0 O7 }7 J& [. U3 h- t. F

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

( T- d& q- M* e0 r. ]
0 I: x) h1 X& H2 o: Y
( B( i. F8 M- _: t/ z

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

1 K9 }# ?) \7 f* S# ]- r: @9 _
4 N7 \2 p+ F$ g# V9 W7 w& O$ V4 O
! Q, ]& X/ N3 H% E. `

t.end_fill 结束填充

" s) X1 |1 a/ h) g
' `& J3 I; u2 z! J; c# G) Z) b
; w' n9 P0 h# i+ o. Q# w8 Z( V3 G

t.fillcolor(c) 填充颜色

6 {- t" ?) p3 `/ F X; W+ J6 e& n# z
9 V( g8 I" a5 V; ~
% r- }% G1 \, K( }' u/ E

t.begin_fill() 开始填充

( ]1 r* A7 q- {% e/ a7 e5 @
" K( r5 [7 \9 s# K+ r# f) j
: ~* w* Z' Q; w

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

5 z' u# G) n- l- c( ]
# a- r" _. |* i$ ~3 x
! l( t+ o. ]# M. {+ i6 g. O

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

3 f9 O3 L$ N+ j5 h
1 R6 |& T# I, k$ F5 `
' J, y1 a' G+ y5 m, p/ E3 K

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

( B% u- T* A6 Q9 k
- J. t2 h. ]5 Q1 a9 `
N. H7 S |# K5 m2 [8 n2 G

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

/ X( D: M, w' n- H- D
+ C' h, B1 O% r- a
7 |3 Q% F; X ?1 _

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

! t5 E& t* N j" f7 A
1 _, B/ r J ^; @* t5 N
+ F1 m& p0 T% N) [6 X0 a T8 n

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

0 T/ j4 M2 }) h% F- O
7 a& V4 K1 \; }5 ?# b6 A
# x+ p4 Q' U8 I- A/ y5 G) h' U. d

t.end_fill() 结束填充

+ z$ U" N" z' g& y0 Y& O
! K+ b, N0 y6 x4 [
) K7 ~: V! `1 @% S* ?1 ^

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

5 s) L4 V+ g2 A" _7 r$ D7 L! M p
! i8 i1 ~2 f9 O3 a: H# K0 X+ D
3 ?' ?. t9 q9 W0 q

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

& {9 i5 Z3 ~7 X$ K: f( i1 D
: l" V( G% G0 |. D
: m# {: h) H8 }8 z

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

, g1 z/ b) k1 N3 [3 W* ?' [& r
: B) A2 I* j0 B! H7 s# e
# g+ ]# }# c4 G

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

# Z+ c9 r; x- C- h: z
; C7 ^' h# l3 c2 l6 S) X
# G* G. R3 l% u

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

( f4 @ I' |! L8 A0 `6 J o7 Q
! C3 S }; i& t, e# V; Y
$ Y4 ~4 F% I7 _" k

h+=0.15 设置色相

2 Y7 {. J! T1 ^7 O
' t4 M, T ~1 [' Y
" L" J3 c5 j& g: P% q; r N+ @

t.ht() 隐藏画图

S3 L) @* {% m8 y& L
% B$ E$ E; |( {
* R- f# D/ c8 I, J2 @) A& A

tu.done() 结束

! {2 Q% f* v& ~0 h
8 C7 G0 _% L/ b3 Z0 w* P
$ Q3 Z5 y8 B8 e) n, g7 P
* Y& C5 a7 z# ^1 ?3 K2 l, q6 Y
: }# b" R( _, Z* M# K# B$ q* s
5 D1 X2 l+ X" {# Q$ t! e; u+ t9 F

源码如下:

4 ~1 P' g5 C8 J, ~, h
; K" A1 o/ S$ X* j! K
* X3 u$ G t/ B( N7 W1 u

import turtle as tu

# c% X1 Z6 R: n* V2 U" ^( x, H
# `" \7 e7 T1 {8 {( r3 z
0 c( z$ ?3 z9 C6 H) |

import colorsys

# v8 `8 r# H8 m/ C
/ o0 T) x$ e+ s O" P
; |$ p# o* I' @

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

8 Q* R" _* {9 u2 d! s8 z' x( r4 |4 S4 x, `& j
/ v! Y7 ~0 r/ g# D( A
/ |- g9 V4 i/ x3 z

t=tu.Turtle()

+ l& i7 m9 d! g6 t6 f8 `& V/ ^$ r
$ L. I# ^2 S) {* v7 [' x
4 V& ~2 ?6 w0 [2 h5 U

h=0.3

; B9 w+ h$ d$ R; R( k% F
2 K b" x/ q& l1 K0 T3 \7 I
$ w1 S/ M! X/ d: |' B

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

0 ?$ o: R; y9 g5 |2 ]7 g
9 p" U$ C, k% E. Y( z
2 C' \ N U1 ~- A6 v

t.seth(ang)

. K* D' U( C# \1 x5 t6 P
' y, n9 A f0 L6 p2 I
1 ]$ _9 ^; C9 K/ @

t.fillcolor(cl)

4 {' L& U1 V8 I& O# S$ O+ f w
: `% j( p v9 }7 c O$ S5 y
0 T( @% w' J, d. j( T% F

t.begin_fill()

' _1 j4 p2 G5 M2 A1 e9 z2 N& ]) S
& t. D3 N6 @0 J: z3 x9 e
+ d& a' p7 k3 x: q' Z% I8 n

t.forward(len)

0 h9 Y' u7 P5 D6 |" w4 x! G
- a( S2 d- z `! F) C, O0 j1 X
W* ?6 L8 U, J) ^# C8 ~' E, J* G

t.seth(60+ang)

- J% V' w6 `8 \/ d! p" b
7 b7 Y6 e& }5 b$ X
5 X2 ?9 a% Z6 F4 n- {. P6 J3 B" ~8 I

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

8 ]$ n; `; d1 ?5 a
6 @9 X2 i+ O3 X
|4 `# A7 b7 T/ [0 n5 A" ~5 q; c

t.seth(150+ang)

$ ^7 u) G! J6 I6 L: \3 r9 U
, C# _" ]' d- S1 }9 O
% D7 ]3 h" J- ^+ ~: X

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

: {/ Z+ b$ ]. P6 h8 {
. B7 i; y, _$ P
$ b5 W( j. B$ S+ ^

t.seth(210+ang)

2 j6 X0 g0 l! Q
. n4 \) O( I% }' j* R
* D% H$ b" ?8 U' W

t.forward(len)

R) m* I7 t0 ?: F% q4 `1 B' _9 d& r
; O) O9 v) a3 ?- e0 L; ^ g" a
: m0 P" b, C _1 {3 ~3 P5 S+ N

t.end_fill

" @* ~. ]3 q4 @! C/ n
5 v3 D5 h9 P' K$ F2 _' Y
2 T4 X) ? i" h

t.fillcolor(c)

- O% }+ O! h. W4 y% {7 j
) k8 j6 v j4 G# A
8 k) B5 u: o3 [- B# |- t

t.begin_fill()

3 v# H6 \5 P9 W* N U$ U, r
) o4 o% Q* I6 s! l7 k
' r/ m, ?- i0 e4 A6 x

t.seth(ang+0.01)

& n3 C) \! Y* N
" h5 a6 y) \* n6 X9 {
$ V% ~, p) l! R3 u8 n( c, H

t.forward(len/2)

- f( G# e8 g7 ~, Y# z8 a
" Q" A- r* _; y
- b2 k5 }5 Z W1 Y) K ~5 M7 T( N" ]

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

4 {/ }7 o/ ^$ A- f9 y
. M7 q$ p* ~7 ]$ B) y I
3 l9 U n# O; ^) j5 r7 ?* L

t.seth(30+ang)

% @: y9 y; R3 f) j$ z N
& ~6 w; @+ }) [1 S! B9 i9 M* j8 E
( J5 O: X; Q" Z( ?/ D# l0 B

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

1 ]5 i; ~3 T- Z4 {9 O; B
! b( l" p9 l8 A' Z! J
. [6 ?% Y4 x3 @3 {- T) v

t.forward(len/2)

: T [0 ~; O6 w1 r0 \$ h& h: i& Q, m
* H2 E+ g6 W, v; h! r
9 {: k" P5 W' W1 ?

t.end_fill()

) }% d. f0 s6 N/ F2 R
' _4 u7 C% m1 ?) M) E
v: S! e- l' j: _

for i in range(12):

Q- b% w$ n, c, L
' e1 L7 H9 [5 i- r) A9 ?/ ]
T$ }1 G; w: e8 u( Y

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

/ Z* q5 \( L: p+ ^6 @
6 [* N a) B& a+ W
- B* i3 F3 R- P& l1 g

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

# ?1 w8 q; ]2 x! t4 {
5 f: Z3 `1 p* }: w( Y" @, b% i
9 J$ m- i' v L9 @

t.pencolor(c)

% _$ J0 C! }8 c. D% Y
t$ p9 n$ O0 X3 V4 c
3 p+ n9 S; E- o6 r/ }

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

' {6 o" `6 x3 v/ h) ~* }* F
- s( f7 r+ v3 n* I% G
; o) v' O7 L( j8 [1 v

h+=0.15

- S* w1 I3 C; B5 _/ }, C
: [0 N7 ^) J4 u% B: R5 h' ? f
9 s! d6 p8 |5 `+ l& B& K' n

t.ht()

1 b1 P) Q) ]& N
6 D4 l8 a" X1 ^1 ?3 m- J) `
# r0 s+ `* i% H; `; b* T4 L

tu.done()

' @) c# w, {( [6 _3 D# O
( w ^4 b# N; z
9 z3 y0 o D* u% U% A( g
5 Q0 p5 K8 U+ L; D" _* R
4 [4 Y J! h: a) H5 y
# B. o4 c5 `" c5 S
举报/反馈
. B" j, ]- ] Q
7 E) V. a/ A9 p! \( Z, e7 p( i3 p p# k( h/ ]7 x: N8 U" m/ y - X! h% P* D% G3 b6 W3 g( T: M3 X % g7 |% U6 {" R' g$ L4 }" W0 n$ x3 P* D 5 w: g9 |0 B% C/ P' O
回复

举报 使用道具

相关帖子

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