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

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

[复制链接]
5 L7 {. G$ n$ i$ j; j
4 X1 d4 g# U/ G" q! }; O6 S3 M. ?$ d4 r
, b& i7 w6 s! d/ K5 u
8 v4 ]" Z& ]/ G. g1 Z/ K
01:39
: \! Y) E, l$ t N8 x+ k( }$ {: ?% Z. w
. E$ l/ s6 s1 @) s3 C
5 u$ U3 z' _* X, ]
) b+ u _! b2 c# k0 c( X! }* D
1 I: ]3 U* q _" d

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

2 F; R: w+ H K/ [8 `
2 I8 {' R& L0 b
t! o" i) N$ ?! o% Q1 F! W
用python画漂亮的类似七巧板图形
7 |. j5 G$ B9 e# _
$ a( t% v* |7 l0 r4 Z
0 @; Z- m+ T( x0 S+ l% y, p

import turtle as tu 调用turtle库

& y* n J; n$ `
: ^4 \' R$ ?$ @( l" C' P
) E6 E0 M% W6 K7 \1 }! k

import colorsys 调用颜色

" ~0 f7 | G7 k, Z( C
" W8 ~ p) B5 I, W3 d; ~
1 C) C0 s: H2 b/ N2 B$ ~# S) L8 F& V

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

* k7 A& b) V# k; [+ ?4 O$ D
+ {2 ?. b, W- Q9 V
; O( X) q k1 A1 T- |6 r: R

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

) ?! _' Y6 z) j) a& Z' j# k
. K3 X0 u2 x& w
4 b& a: z/ Z! X

h=0.3 设置色相

" i* w, O& ^( {/ B
( i$ I" I! `, p+ x% W
( l) |; y; y- |" k2 q. F" S0 t" w

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

2 M; A) v R0 f+ S
1 p4 E" ? p+ t0 h' q0 Q8 _6 W
, S- l' m v$ G) L4 T1 O, |

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

/ S( h1 ^1 T2 P
- J7 P5 P9 u5 Y3 g4 r, b P% I
+ n/ g; ?, P" A. V7 i

t.fillcolor(cl) 填充颜色

% ~- R& u7 C2 y0 d0 j9 T9 s
; C; J( }, p6 S
1 t* O# h& b) ]7 @1 A4 s. K

t.begin_fill() 开始填充

" I( @1 L! a3 I# M& C( G9 i
7 `5 h3 }7 w/ r
4 m r- S! y" G' `

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

Z$ M2 S$ H2 G: Q, k$ A
* T' D1 D3 }! L- \7 X4 v* b8 o: _" o
# S# X3 ^, Y/ J% |# z

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

# e9 p; e0 {5 @! b J
9 [# V; }# q3 |
$ J6 ~4 S$ {" o5 F; j, q- C

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

2 |" K, L, x1 b7 Z
4 t. q+ N. J/ u8 \0 H: z
: q5 o7 D0 U4 _. v% _

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

5 R- A! |) f' }7 `
( M: z% Q- x$ z/ U: O
; a7 j n3 `3 e! h. d, \

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

( `6 o' u E8 z! {5 s9 w. V
9 H8 G0 L7 r, O9 [, T& g
: ^4 Q' |$ ^- }. ?% c( R

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

2 b' X2 T, t4 g* R' _
: H$ a8 M& ]3 l
4 m" s7 z: d4 [' P1 H

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

: R$ w' u) X \5 T/ B* Y
4 x/ g2 T9 g& D: V+ S4 r
% I+ h7 R5 F( S& p$ Q- w

t.end_fill 结束填充

; K; T" R. u, ~& a4 p
! S7 p7 _9 Y Z" `
0 ~) u- A/ E. E+ e' d$ V- ^ m) d

t.fillcolor(c) 填充颜色

2 i8 A: O6 ^4 Q3 N
4 H1 o% i% M/ N& z& N0 w
$ E" x8 x$ F, l% M$ t

t.begin_fill() 开始填充

i9 S0 r1 a f9 y' X$ z7 }6 B" l
5 R* X/ l+ X: F3 l5 j, S
& k6 J$ q7 T+ Z( L* V7 s; w. b* `# Z& L

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

: n* G# v/ p- G4 I u
+ s" h& u/ v5 Z D, w
1 P; |9 P }1 u

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

* U2 I; G2 [4 q$ r: _4 P8 B; h9 Q' m
- z" w0 X* q$ d7 o; K
: Q- s7 }1 F; f7 i6 M

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

5 m+ @( D# f$ t7 v m8 K0 ^
% J( ]! g: Q: n0 \
5 b* R0 D" O9 P2 ?( f+ {% p$ o

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

/ h' J% t" }, a$ X' S t$ C
% n, g# K6 }; a" N* R0 d
2 @/ {7 J4 B( s' T& i. G( z! ~' o

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

+ i$ Z( I+ d+ I* L, ~5 a7 w
4 \( t7 Y1 |% t c2 U# k
$ W9 s% ] d4 G H, ^) u/ Q

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

1 W7 x. I% L3 S/ x; E, r
6 B! y5 k' V+ i, X: i
6 ]/ `& R* z! V! q8 U9 |% s0 F

t.end_fill() 结束填充

) g. U0 ~: ]% n& |% E1 n9 v9 x
# U4 K8 s* D0 q- C4 q. s
- p$ k" i2 O$ Y8 F0 c+ u- S

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

5 I- x# Y0 V9 L
9 J% }: z5 p$ M/ u: L3 j
3 F3 h' O! b3 b: p4 \1 A

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

! P, d" f. }/ c3 ]& _
2 `& D3 ` o0 o
_& M" q! _+ H: _. \8 l

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

& {3 k' E2 G& O0 g
! G; `" M5 h: @' n7 F' p* S4 R
# G7 P0 B/ f1 t: m8 `: J

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

( E5 K+ z" i5 i: z } A0 }
+ E! d C ?. v* o0 v" D, n
$ i/ ]$ ^: ~- k, M2 j) I4 j/ T

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

$ J" s% P1 V+ s [# a$ y% X: ?
. S _1 k# G0 D
0 \: [8 G' E( ~: J n4 `

h+=0.15 设置色相

5 c; U, q: i% x. U
8 u% a* \, R. `. P: S2 N
9 [& y8 }2 T! w+ N

t.ht() 隐藏画图

' t- K8 e* v. F( _' B, ~9 F
/ J* s8 F# g5 ^1 |2 E& o" l! A' i
4 `! {8 L- { @% s5 `

tu.done() 结束

7 k) r. B0 q1 q. W
0 S7 R1 W! z; R; f4 x% |- H
5 V, b/ V% s- d
, `$ k; d/ K7 D+ D6 h
6 G' [& U8 A/ r) d0 o
, E; v3 z+ q/ E; _

源码如下:

9 g: B8 ^* q( {! B% X& Y
7 S+ J$ P I: d1 _8 d
. Q' ^ \ t. E1 d0 b

import turtle as tu

7 k: j/ U+ H, b
6 h& F' v* c5 n! I3 B
: `0 H& [- ~" J! K# F

import colorsys

4 [; |0 p& i6 G+ E1 |$ y* |' b! T
: P: ?# f2 m' Q. k: R4 R
( V6 f; R# v: u; U/ _! } s, e$ a! h

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

. V8 @. }, f9 O( F/ s8 i0 D
, A; r3 N6 {9 _0 D9 Z% ?
0 o Y) t# w0 m) r, G' K% d

t=tu.Turtle()

# w% L' M. P9 V
: h* {( h q) R$ ~4 }6 _
: F" B/ b) V1 Q: w! Y9 m

h=0.3

& Y- a! Y5 Y( \+ o) ^
/ b! T3 G9 ~, Y8 M8 c/ E
6 i! l/ O- z7 V0 U4 P: S8 ^+ M

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

1 V |. a( B5 V
+ D' q$ S) J% j3 ] b
( z8 B! x' k: M* r# |

t.seth(ang)

3 d/ y; z- h: T! w- e1 R b3 U
1 s( ~: x _$ I0 ^5 c2 _+ |
7 P2 Q: Q" p; Z! ~/ S& ^5 x2 W, D

t.fillcolor(cl)

8 d3 l+ K, ~) Q9 `7 w' `$ M1 w
8 o8 I. o a/ f/ {# l7 J1 T
$ {1 B" A) I' a% d

t.begin_fill()

, J! D3 K" v" v+ g0 M
( L1 I( O. Y3 x7 P3 ^: {' Z2 k
% `: g5 \" N2 w& \" ?

t.forward(len)

" r2 Q* ~9 E( D9 F J/ D! H4 s8 i
) O+ E, V* F$ p" g+ ]
' Q' [. k$ M9 a( f) S) r

t.seth(60+ang)

: I$ p1 P6 P- E
0 R, D5 U4 W0 i! `! b$ i
1 w. B1 ]4 u, x

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

6 b0 p& x ~6 k+ r& l- r: Z
# X2 `7 J3 ~" [" A# G
6 D" c+ J1 R" Y2 n! s

t.seth(150+ang)

3 Q A& L; v0 r
& H4 Y3 Z: C. y$ d; Z1 P' ^' C
$ o5 s5 a! O, _- n8 y

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

! }+ g) U; ^( o
* H( [5 F# `( H; Q$ X
( |, n/ H# j. b- g

t.seth(210+ang)

b' ?1 g& c, S
: a( h6 h" v$ V" o e( H( e
" p0 z1 N2 v. j

t.forward(len)

: l8 X9 ]4 v) P m
! U7 V# o" ^8 s3 G- j) x9 P
* E3 Q2 t; W0 |2 j' }: ]/ Y/ u3 k

t.end_fill

& N/ Q# B# x& S; y) D) a; F
2 Z, Y% y* P4 B2 e0 `+ e
4 L" t- i. ~0 y

t.fillcolor(c)

( H% u0 ?! m; b; z+ t `( m) b* t
O9 p2 Q/ t8 y. g" E
& Z' n. H6 _5 J# l7 j: e6 {

t.begin_fill()

4 K4 r/ X9 U5 q" t
) }# I. V" I, d9 ]
! u# }- G' I( C* J B

t.seth(ang+0.01)

4 w6 V/ {0 A0 [/ Z2 i
( n% L8 u6 a. P
8 ] \. g A8 Q5 b y1 P) H j1 g3 Z

t.forward(len/2)

4 f; Q' T: B' x1 F' I+ U9 d4 i, |
3 A; s/ M6 x3 f" T& ]
! ?: i/ l# e, c4 y. o$ l+ V

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

8 F5 u7 t% U- ?' Q6 u# X/ l" l4 t4 V
+ T! X. Q8 p; ~
, d# s. H0 O/ W4 H* U

t.seth(30+ang)

2 @5 F# J3 L( `! z
E$ }' t W, r
, r( B1 V) {% p R

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

0 m- ]2 L# b2 n/ w5 T' g0 _' g
! n7 u) Q; p6 z8 s
5 ?6 s5 W: Z7 V Z9 ]0 H, I/ s

t.forward(len/2)

# ] t* Y o9 v$ M0 v
- Z" [2 j7 ^( x: g* J3 Y# K
6 N5 x8 x6 Z6 j( E) {8 |

t.end_fill()

2 o0 |; X' `) b8 M5 {; e. n; @# s
' K1 V$ L ?* B6 j7 Q
% y( G7 J3 h3 l, \8 b0 l' c6 B i

for i in range(12):

7 P7 `/ L/ h/ s6 z9 m1 a$ w$ K
# X! F# y8 ?% G. ]+ Z3 F
! r& f. J+ Y, _' W" `3 ]6 \# W

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

* y: l* B, ]' X* F1 R
2 P3 Q7 r! M. y0 E" V! Z
1 m2 l5 l. E$ B* q8 ~

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

- H* W4 {' e' @# l, d+ s% L
, y/ s) h' x9 I# a" P9 S# \* W
1 D* a: b7 J) E1 M. f+ T- f5 `- X

t.pencolor(c)

& k- G0 j, Q* {
& Q' h9 U" W& g' f8 j
6 [2 p2 c }/ {; V' u

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

* r( @% m% Z* h. P6 m. x
) s0 I9 u( g# q- I- D
' N& P# K5 i, U/ q9 Y

h+=0.15

0 C* F& C) x* @ e
. o* V5 N/ H$ |& e
+ ^' P) ` D4 @& K

t.ht()

, E( s1 B9 x2 t9 q
) ^" `; x, T- X& |* `! U
2 `" G ~3 E* A

tu.done()

* l' I, V( [; b1 V
/ ^ {: _1 B& Q1 O4 o
4 f2 y( ~- Q+ X# D" N4 E
: D1 Y: V4 |/ R" @7 i4 r
3 n; ^/ d. |" @/ a6 s
0 j6 z3 u& K0 t
举报/反馈
- {8 P7 @6 \: k7 m" R2 C
8 t: p: c, K" |* _' m # k" k( h# y9 v9 q: b; t & x6 Z' Z( ?) g" d7 N, a5 N3 [( j! h0 _ N7 U ) I' }6 L$ f3 }1 u5 E9 Q* A; i
回复

举报 使用道具

相关帖子

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