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

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

[复制链接]
) Q1 _2 ~! F8 f
. R. {3 Y) r, C8 W' l: i
! v2 {2 I2 J3 v
9 u" O1 H; j5 x: e) r
01:39
% q2 c9 X$ d, l G* ~) u
# h) X$ G) x! s! Q
, L/ }. n- a$ P+ ]( B7 f
1 G0 }& R; W6 p& R" c. H
8 O2 O& _/ M9 H5 V" `2 u, _8 w

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

. x* M/ n6 ^, r$ v+ q
/ }3 _. B* S9 d
9 w. h: l6 y; [0 y5 Z, M2 }
用python画漂亮的类似七巧板图形
* F; l) P& M6 n/ J
/ I1 N0 r/ C$ V! O- X
9 g% b/ p# x" E2 g

import turtle as tu 调用turtle库

9 }7 A8 r9 T. N
, i' Q8 E2 X% N7 K: u6 R
3 w8 Y- h, S$ v* m9 }+ K. i

import colorsys 调用颜色

, j; ~; X+ [3 }
- p9 D8 ?; [' e
' a( c% D% N. G9 {; ]: p; l [

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

: n I" z' A+ p( l) D, I
. x: a0 k K, R
1 O! X+ Q4 O) b" m5 d2 f, h6 w

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

: a9 j! c& L/ y" D' Q
5 K b& P V6 u- f+ E/ [( d
( e; t" E- N" M6 d5 }' |! s* J

h=0.3 设置色相

# _- G2 V! A! G H
$ H5 |, s* V- {/ o3 S+ h% a
& l, p& P2 Q* }0 \( N

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

3 D% t+ E6 Z8 }$ z6 H. N( ~' X
6 c3 ]6 R7 u- p* f
3 f4 w/ E% _. C9 K$ t

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

* u6 [; ?8 o4 y5 _2 n
' R- _! ^- G6 a1 D2 z6 \
0 | {* j6 ?# Y [ z

t.fillcolor(cl) 填充颜色

$ ^& ~/ u1 ~, S7 L3 U4 o
+ ?9 j' ]1 \) _% \! a$ f
# f' @* r C8 X

t.begin_fill() 开始填充

0 S1 j6 g0 W$ |' U4 W
0 I/ m0 j( G- w
, B }6 K" o) B

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

1 p! k" R; z0 v
4 S0 ^# Y8 b9 b2 O8 j, B' \/ [
% j& M! J j. C5 V

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

2 F8 o/ ~/ ^# c, u/ R+ A! C2 ?
) E# ^* j; N( f9 h" e8 _" M
, r* D% p( o) @$ O( Y" T

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

' t$ m* b8 R9 u! P8 |5 {3 f
; r" g' c! a0 Y' Y# a2 D0 i
' f) p. @2 K5 ~- s, _# `6 K

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

- u" r. m7 A! ?" }% C2 h
9 k1 i5 H' |, w4 G/ K% e' G, Q! C
6 N' @% W7 t! ?" L

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

# h6 W J: x7 Q, Y A$ l1 H
- f% f4 v/ m5 q: X3 {
" ?1 N( j# M9 v( D# q! T2 w: _) w) H

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

) ^' L2 M/ {! ~5 z: Z- l
0 a1 Q% Q! m% V X
4 ^; \5 o" G1 H

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

' p& ]6 a/ S* M& U
' S& f5 @) U" H) P% z1 ?
* a. y8 k' P) c4 T

t.end_fill 结束填充

. u" k# f9 J( K& Y; w7 k e
' g& e4 v8 b& ~8 j3 y
r: x1 ]8 a2 X. X6 V

t.fillcolor(c) 填充颜色

. O' c' z3 s: t# k% W
1 Z; H# U2 J' i$ `3 N# U( {. i
! e, ]1 r* @; ^- L2 ]: Q

t.begin_fill() 开始填充

# _. @ Z6 Y* c2 I
x. _: V0 @( s$ B; M* `" Y
5 Q* Q8 m `1 `' ?1 @

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

; s) |$ f$ @! z& R& k t
{5 J3 E/ n4 A# V) a
6 ~6 x. v3 g* M4 z V: r" P

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

2 B1 N \- `' {* u
) J2 ?! p7 s# ?( O2 H" e
& J Y N# S7 ^: F k8 _) K

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

2 {: B9 Y& Q2 p- c* p! a, o0 Z$ u3 x2 x" \0 w
: y- y# ]; N$ @7 F% Z4 z2 ~0 Y
: c6 w; _% o/ J. `0 X* I

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

5 x. k1 N- d2 d& X$ N
Z! Q$ E0 @+ q5 ?' U! Y
& r! B, H6 h. A- A8 P$ R/ ]- w3 e/ ?

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

) [( q7 Z6 v$ x- I w
+ ^7 o- ^3 S, h) P* t/ T# d- R
8 D1 H' f" X* O+ W/ P4 o5 [6 S

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

" X$ D) l* Z$ K4 t" i% I& \+ i
7 m" q' V: v" E7 h$ Y1 S; J
% s# ]& B5 q# \) W% Y2 o

t.end_fill() 结束填充

m/ Z3 v8 G: x8 j; r! U# y
, o+ R/ n c) V1 R. q6 G
+ m( x9 I8 J5 L+ T) s; Y4 z% E2 F

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

$ _6 z3 h/ i- {% G1 S" s8 N1 |
$ F8 ?" s' u s5 ]; u/ v8 e2 H
" |. ]2 |5 {" D' W% c% C

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

3 n; x' W! q; i; z# x- k9 h
5 d9 K* i, ^# h$ b9 ]0 e: M) {; G
! Y7 u6 Z5 y9 S5 t3 D" d) G

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

8 H. V( t( p) A% P: @$ s
& z& R' c4 r" L; r/ n2 w
1 \/ Z) h2 F |5 F* x3 R$ ], r

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

* R, a Z& V% w0 `7 r- u
% \& V8 W, ?9 E
4 y% T# y+ j w

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

* i! M4 |. P3 k( E; Y; o4 Y
! T+ J, D& J, ], a6 }; b
8 p$ |+ o5 K. N" Q8 B! w4 C+ d

h+=0.15 设置色相

8 E8 `# Z6 m9 T, h$ G. _
/ E2 k7 j0 n2 ~$ l" K, b! b: U. c
% Q2 k1 M- U7 i$ [2 N! V( }+ N' b! M

t.ht() 隐藏画图

6 `- K7 F0 U& J- l* E% j
* P+ a: H- t' p% y5 b o
$ d, ~! Y5 i: N9 u* _

tu.done() 结束

- s6 n- v- ]+ y! W: ^# j
; h+ l5 N' I V
" ~9 S7 C: ^. A/ Y
' v# R, Q! Y A5 I
|, V; A$ m8 z" g7 Z) K1 V+ W
* G+ X# G$ v& Z' g+ Y- E

源码如下:

- N! j7 ~- h, Y# O; _
0 O* u% Z& }' ~5 J! \: w
4 u% [7 p# B: t4 N# P2 E

import turtle as tu

' u! [: T i6 J# Q# ^( q
3 o6 X1 g+ g' A3 p4 G5 n" c; ~0 Y
0 R0 u4 w6 {8 }: m: R

import colorsys

, W6 }: _8 x3 N$ |0 R! [
) |) m9 F) H( O5 f- k
2 M& P% l8 ~, m6 s1 r* m3 d: v

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

' X- _1 s0 X7 T3 [: U, `
c: ~( y3 J) X
e6 i! \3 g7 y, f4 T

t=tu.Turtle()

& k( ?' G6 ]8 Q5 i: e' D7 u
/ `# j) {% @2 `* s: b# I7 _
/ `# X) G& a' L5 n( |

h=0.3

# p, d' `# U" ^- h5 N
" i6 z0 w8 E( p- _% R" U+ x
: p% K. l' z" q ~0 J2 H

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

; G: d: o# E( X; t* G. k3 `5 c- _) C
8 J& g+ C/ C, L' [- }6 s" S
0 s' X+ F5 I: j0 S; R( ]& U d, D9 i+ A

t.seth(ang)

( @5 A: m- Y5 {, T+ t
- C- A$ Y( H" ?4 j
' b2 q2 d% B: ?4 Y4 E' _

t.fillcolor(cl)

7 L! F1 L% s: A7 q# y
+ s/ w! U9 f1 v( u
) G6 P! y+ \7 ~+ p5 F+ X/ n

t.begin_fill()

) v. R: e E# G g, R4 s" h d7 }& B
& r) e& f, Z' A: D' ~, C5 ~! G
* H7 y% e7 q1 N

t.forward(len)

; |* Y' \8 V% l3 g6 P
2 b7 r8 X% J6 b' |9 ?" a
7 u0 G( |" a- @& ]

t.seth(60+ang)

1 x. S4 m- e$ u0 O1 b& m
; ^ ]2 l) z# c
# I, e" W3 E8 u" S. r

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

: Y# n( Q. X+ Z3 F# P; @/ v
' o/ D$ S8 `0 w6 q% E
4 c! I8 M1 f& g4 }* J% S. Z

t.seth(150+ang)

3 B+ E$ v4 t( s( @. ?& x. Y
# G! U8 K+ D+ x8 d5 M8 V2 _* U
- v) h* i' T+ K& v, N6 @! y# A

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

+ J: O2 f- B; i6 O, U
# [3 b3 I! L$ Y' d- Y2 ]8 c! T- v- {
: D) P9 `" J* T$ w7 w* ^

t.seth(210+ang)

2 ]# r0 W$ M! _1 |8 x8 R
! u7 `# `; ?' O4 A/ h* U3 E
) `1 E: y6 W, T( M

t.forward(len)

1 D0 U8 o& l K% H4 p
7 q _. D0 K& y- [% F; k
( {7 O6 u% D3 ?; B) y1 n$ Q3 L k

t.end_fill

; o- A9 F8 P$ x
2 q; [) p3 Z7 H2 h' \
( ]3 j# [" @# G- c# X

t.fillcolor(c)

l5 H; E# d4 A; G9 z
h5 O. R: ]" Z8 b, T9 _
. e, c. V* {* i! r) i

t.begin_fill()

/ X0 a$ X" O. E* I! `
8 ? M9 v( a6 `$ {/ Q
9 m1 q' u) v) a+ r' s

t.seth(ang+0.01)

% V# o# x. ]1 D
; a; }/ v1 }$ O5 X1 |
. d0 f* P, [+ c& \

t.forward(len/2)

: `( R/ C! F) D5 J' j1 p
* x9 ?0 A: c6 I5 q1 N4 c7 V% j
( h. W/ |" D( V/ P

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

' N# ~: ^3 n" W m) Z* Q" i' i0 s
! @, C3 r. v$ P/ J3 c; \9 x
% E+ E) }' |+ I- U3 c6 C

t.seth(30+ang)

9 @ f. W% {& @" u e
( y! L& L( g8 L ]2 b `
x9 Q$ P1 e- a9 {; [# Q

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

& x$ l: m+ U' s+ I
5 ?4 j2 G5 D' a" B# E! r5 G. f' s
+ U1 P: r2 v: y) N0 q

t.forward(len/2)

8 r) w. j3 e) }% y
0 V" G0 \" U/ P3 H9 V- ^& R
) N; `* u' x; I: x1 m; e( m

t.end_fill()

0 X. c* d# U9 R9 K8 C8 L. V
* A, o: H# l- P- |8 ~# D0 F
% V m4 a1 p, a9 r

for i in range(12):

: ]) L* w* {; X* I
! d) U6 R: Z ]% M/ T! y4 P( f& C) t1 K
8 V8 j* d7 m; r/ G: {# l) F

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

# K# E6 A3 X3 J4 J8 B7 j- _
/ l H8 @, ?' _& s9 j. @
8 Y* i6 R6 P0 W0 Z) B

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

% M% C' W2 g- @/ g
8 g3 m% P, w0 g, K4 [0 Z
# _/ E2 x1 d5 V* c* [

t.pencolor(c)

& w2 x1 D* I6 [5 n u5 v
3 O% P H/ @$ m. G: {
' f4 D5 {$ X- ?( a7 S- c1 Z

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

7 B9 I1 ~1 _ {
8 x) }: W+ `% q& W2 A ]/ U4 Q# f
( Z1 k8 {6 n9 _

h+=0.15

% @7 X9 y' I/ o
: r6 C& V M4 X' V' D
3 A3 U1 Z# J- @& K; X& U

t.ht()

/ U& I" |- r( Z' b* L" S
9 \2 X4 J: p" I) }
; s+ h" @$ c& C1 t

tu.done()

, `1 G+ h v* j& \0 M2 {* k
, |9 v7 M3 G* [8 U# I
1 Q' R/ |0 v1 y
% L& } K. ]# S. S/ O; Q
/ g$ L( `7 N8 C+ o
; z7 `: u! e s8 c$ S+ u8 d* m
举报/反馈
8 @! A$ G5 I3 z
% U% h2 i7 M) a) P* K- {8 K+ G % s4 d+ ?6 y' n# \- W Q, m$ h - `# V* K4 T2 Z' h ] % D8 X9 E) C& l" I, I- Z. d- W! y! Z- F# t4 U
回复

举报 使用道具

相关帖子

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