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

[复制链接]
; U4 t7 ], |- T4 f& B
B5 M6 t' x0 C0 M
9 W3 H8 F. G. c3 Q9 K6 ~
7 Y5 k2 e) m! I
01:39
1 Z9 {/ h$ `1 g# i) ~) J
9 e1 a5 C1 h3 K% o, T0 l7 D
& N! M- R, F: u8 o! U- e
/ Y: y- T% V% ]6 j# s0 k
0 ^+ M. h T! v$ @+ `2 Y0 @% ]

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

S% N# ?1 S4 \
: t$ h/ }! C; |7 N, \6 G* g( O, R
7 B" C$ |2 p3 F% ^3 R# q0 H* D" N) @
用python画漂亮的类似七巧板图形
8 r+ H8 e0 O: ^% U! S
; e8 [8 r1 f* T# A3 G
- X D4 G: c$ O- W% w F+ x

import turtle as tu 调用turtle库

) H! e3 k1 e1 X6 @ `. u& B! e+ Q
' m4 h& v0 U: b! a, ], l
3 F8 ~0 X( R/ l# z i4 Y

import colorsys 调用颜色

: o+ w9 Z; g7 E w" J2 s
# U! l7 h5 B* |$ Q/ q2 t
U* V% d' u1 Y* {+ q9 v4 k

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

/ K, T2 d) c. n, v5 j$ y0 y
- T4 c- l& }! [8 X6 [3 y
. a8 i3 W: O- W

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

" T" Y0 j/ y0 D; N5 z5 S
0 L6 U: _# }1 p" p' l4 X' E* B, T
/ |# Y0 y1 W9 C9 f: Y% J8 z

h=0.3 设置色相

2 W- f5 o; I; _1 B- a" a1 X8 U
2 y: k; C0 L" G# T7 D/ k
! [ `& T: k9 j) O0 J5 N% d

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

4 C1 J3 X+ g- |6 U4 f8 a/ [
* J) F. S: ~" |. b. d I
( E+ p/ b9 {# }2 m& ^/ o

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

0 k# f- g5 S. P0 U* h! ~7 h5 E. V
2 c% {; A& X9 T O k
' [6 B# E/ e; F. U

t.fillcolor(cl) 填充颜色

7 ^( S# n- ~* O7 L
, |/ S7 j( [; c* O
{- x6 @- S/ S* K) ]

t.begin_fill() 开始填充

' M' V6 u4 J' M6 a
" S/ f; h! k- M
. L# o& r0 g$ Y; `9 Z

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

( E# C, o: a, w( o
! |7 J% h0 E! E# ~; k, P6 U
9 ?4 i- R9 x8 S4 w

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

1 p9 d, M# l7 }0 H0 M9 v" b. j
( r; g1 V# q) W, z* H4 u. m
2 s' X! }) q9 g4 T1 z7 C. {, G

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

0 D8 Y8 F! M4 e3 y4 S
. e6 j7 @! E- K& Y, `
7 R$ M0 P2 G9 ^/ H1 I) F Z( L

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

6 x4 ^- g& u" X& M* V; ~/ ~: b
1 U' K7 x+ t+ a+ p, A" N+ o
9 ^0 L" K# a1 E* T0 C

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

9 s8 z4 u4 T/ J/ c. O! Q* b; P: ^
7 C( I, }0 u% ^: ]
! K9 Z! u4 J9 i5 ~8 R

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

) D7 C6 A H3 q6 B' K e
" L6 M& s0 c$ x% z
$ ?) k# B6 r8 _2 V3 c

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

& y6 w& z* |& X1 }! [* d
* Z6 n0 X' h. n
3 e. B+ v" X/ h: G

t.end_fill 结束填充

) L" c9 D& e% ?8 T/ r! N! ?
' {8 M) ~2 g7 S4 x0 X8 b$ Z
& y% F7 h' a C

t.fillcolor(c) 填充颜色

+ N. l5 Q: y! J* f: S+ n. {
, F7 h. t/ q- D9 ]
* p: v+ ]2 O3 m- H# h& }) ?! Y, @4 n

t.begin_fill() 开始填充

* Y7 g- Y" d; _4 e
- L( ^" Y! N( G: p4 s- ]+ |
3 L- F; V- E; w$ M% W$ S7 X

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

# J( q; m0 k- p+ f
, G+ {$ K' s8 O* B7 A( |
- c5 U; z" m) x c& r& P8 R- r

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

+ `! c5 t, w, Z: B; F3 _! K3 o0 O
( o; T" R. J9 J5 S
- \. I0 T- k# U# {" ^! Q( \. t8 x

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

$ c5 f( r+ r9 N# Z/ y0 h' ]4 G1 i8 ]
3 _+ s" r' [8 H5 l3 G2 F% q7 u% \
: S: F Q; L7 I4 `3 |* l

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

1 c3 E0 f, b3 [3 b7 I$ }0 ^ l
$ _0 i( ?5 O, F$ V/ ^" v
7 ?8 T+ |6 ~4 \

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

' p# G, G, F7 p. }0 L' q
' e2 R0 P, S, s" M. l9 [
7 @/ Z9 h% b+ l

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

( z. x! f0 D, j. u' e
3 k* k9 U( I9 C9 \) c
' @0 Z2 f( T! j/ o) m0 Q s& p

t.end_fill() 结束填充

8 b/ C' R0 x$ i" | Y3 ~: D% D
* r4 @0 p3 N9 H: E0 k3 |( `' B& i4 a
& y+ B! d+ d- R# V

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

- C% j$ C9 _9 V) R. K) E
2 o; ~- Z" z6 P2 O
# M1 C2 {; J( X. x) \/ w M

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

" z: D1 ? e$ I+ c, t% ~
! P5 p7 ^7 A v4 s% e: v
0 Z, K X( ?- v8 z/ f8 F: D

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

2 y5 b N" j8 ?. b
w' [) v% A+ @* l' J
7 V# |2 ^ R# R; v; B. u1 J3 ~+ J

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

: Y7 N* v7 I4 f3 \0 j8 y P
& j0 j# v; l! G) u) Z
3 a$ S5 `2 h* Z! r+ ?

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

. n& O/ z3 r$ B. `8 _
4 r( u: C$ }3 |: T" ]; u
1 u$ h3 ^8 M; [" z

h+=0.15 设置色相

) a0 y& i7 d- g( W
8 L: P1 L8 M# ?0 x* m5 A$ ^
7 m2 i" ^2 ~% ]% \2 q$ R: z

t.ht() 隐藏画图

$ a! M! ?5 j- C7 D4 Z$ E
* e f1 F$ I& r9 m4 n4 o& d1 s
, S; y4 t) |+ f. K. _5 ~

tu.done() 结束

+ O+ D W' \. |" E3 v. t
1 I9 |6 ^2 I0 X/ A" p1 l9 v
# `: V& N. y p9 e
1 I9 x4 L1 G5 t: y0 }
( ~+ R! L" v, l/ K
" r$ C. e4 i5 y! E

源码如下:

$ |/ n# l9 \' p$ U
v* p6 ]0 L3 M
' N u- r. ?% q3 l* v8 B7 v3 q

import turtle as tu

7 v1 j2 ?: I5 s" P8 F
1 R* j$ d$ w; \, J
& `& E9 i& h1 V4 c

import colorsys

& e) Q. P0 f7 F. M m" e; B/ y
3 r; P4 x9 M E b
$ x- ?9 Q2 a! ~

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

# P$ J" b9 z& [9 s
& H% D0 h2 K) ~) l9 v
7 z3 b) @" R' a$ R; D3 z% Z/ a: O0 K

t=tu.Turtle()

/ @8 y8 k; I8 j, n# Q- X
5 A+ } D; s. z/ r
* H1 q) T2 n, v5 ]

h=0.3

0 @/ m U9 Q. Y! S g* \5 [
) u! F* N; f3 ~
/ o/ V p5 J/ D- L- X: y+ m$ I9 k

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

0 a6 u- |0 B! i& s
$ }* _9 H' f2 V3 B
6 O y5 D0 x3 b

t.seth(ang)

1 N* a) c2 W2 k% S s
$ j- T/ L' n4 W' v/ U4 A; ?
9 H0 t5 l8 F0 I3 T$ j

t.fillcolor(cl)

9 f. `4 W5 Q* D7 m
5 N5 v/ Z" O* E: f; d
. b$ ~, e. `( b1 ^. _' [+ m

t.begin_fill()

+ ~8 p6 c9 H5 Y7 V
3 I5 Q) s8 W6 X2 a& w! v2 ~( R3 y
: @* P2 F& q U

t.forward(len)

9 l: S, Y& w7 {6 ^$ T) G' _& H
2 h/ J1 X+ m ~+ S1 X
: N5 n: D9 V! S. H* n7 M

t.seth(60+ang)

. w' a- X4 f, C" v( l) l- x0 i& |# a
2 R1 k6 X5 H, n& [( T; n! J
- G. Z( q" n( n( {4 i

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

0 i6 N+ D4 o( \, Z
5 R& w& G5 i3 K b6 d D9 P2 g
8 v" \, C/ m& @; L5 G! T

t.seth(150+ang)

O; h w1 I; L) c* Y
3 _7 ^1 i I1 P% b' |
; c. Y- u, g! u9 ]

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

/ {& M7 c I" Q+ F! h1 J* g
7 O1 N0 D2 u+ I) v9 E* t
( |" `, o& G3 l1 P

t.seth(210+ang)

, I9 p& g L6 y+ w# @8 h
) c5 Y) D5 G# J1 v" K8 q7 M! C* L
: B: ~- h) w2 ~! } f0 q

t.forward(len)

6 C0 Y1 f. V% j I
( k9 J& v) l9 {2 J
# c9 e; ]- {5 q% G/ W i& r# C

t.end_fill

, W7 A1 M+ l) y4 c3 E& b7 c/ `
. G6 v: i; q: J# [, H, d( n' `+ J
0 V6 V. ^0 n0 }7 z- Z# t6 H# K( H

t.fillcolor(c)

, x% d% G7 W2 s+ L4 K4 o# W1 X
% l5 c1 {; d7 |% h- r
+ J- `' X5 G" B

t.begin_fill()

. k, \+ V. b% \
) R, h, y8 Q; u: h" E
+ Z1 e3 M3 @3 X$ c/ J, H! [+ m

t.seth(ang+0.01)

( v1 j% T/ [# u" n8 X
?. [( K+ `& L4 l8 f# D& z
# @" A2 ^% L3 G7 z

t.forward(len/2)

) R( q1 ~% x. {; B
; \' \) ^* e9 h! c; ~' X
& s- A2 b" a) k, g ~5 o# H H

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

9 o1 s" s, S: |" g- [
6 |+ w; v1 ~: ~% H
6 a, v2 Z' s! d8 \' C! B3 I

t.seth(30+ang)

+ }7 N. Y- k0 ~5 o: g
- z D( `, q. |) v
+ [9 g; a) W8 D# \, E5 i

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

8 L; n5 h0 A, F4 q* Z$ @8 j6 A! T$ C
2 y5 p) i$ H) S/ V
+ i, G. y6 c! r. x' u n! {0 c6 q

t.forward(len/2)

' A. _9 f: O- B; e) P2 m
# Z- D$ ]7 I6 u' f
2 e; s+ C+ i( w0 }& f2 O M

t.end_fill()

+ z) Q* T2 E# d. x: A) Y
# R+ J X$ k% H* {- O1 }% j- L
" K! O6 o, A4 E4 Q! \

for i in range(12):

+ t" b; {0 p. t6 K' z7 S: t
7 g- U. ~# p( w; M/ _( o# o
3 b- o, X2 `, n

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

1 N4 h y8 }# B( C8 g- T9 u
( X% h. o( D! b* X( ?8 F1 G
: A; w* \5 y8 S* L. e0 H

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

- h0 X* |4 n3 l ~, u2 n
. E7 T+ L/ G g3 I6 h5 G
+ g' I8 E8 e7 V% w! X b

t.pencolor(c)

7 s% Y% |& U! `+ W
& m- O3 K/ T8 ?% W
3 }7 f* ^1 E+ v, g

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

! ]2 s8 o) h1 k2 J
1 Q y2 P9 b, E% K% i7 |+ Z
, O( Q& y8 ?$ d+ n. G# G& j

h+=0.15

4 {9 _9 u& X( r
$ I: b7 x# O: g* A
/ i0 T. r/ Y0 d; c' M: p' R/ k

t.ht()

8 p& S& k* Y6 A! z% a
+ u3 G) Y' J3 Y
: ^: [1 T: R* y' W* e

tu.done()

% M- ~) `; ~* d% y& a! K/ T# h
5 \- I1 w9 v6 U
% @/ `" s. \/ Y& v8 }- ~
# Z- E; U( t- I, q2 D9 y( K& P
- Y0 y, I" [+ i- `4 s
: e: h# G3 c; Z
举报/反馈
6 ]/ V8 {2 M/ U; v
6 j/ q& K5 S" t& d" `; D 4 D" @9 [5 A0 k/ K7 L ) |0 `# H2 ~' y! Q# C' {- s7 r o& W( n2 U2 |2 ~1 W- O . z2 O8 U6 f4 @7 |* X+ ]
回复

举报 使用道具

相关帖子

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