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

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

[复制链接]
" M: b( `! t3 Q5 [6 G- Q
w& G6 N4 h- H& r& f
0 g* l; r3 H7 K* y8 T4 U
+ Q' \, H7 T. h' Z
01:39
. F: j* w$ r' a# G: n7 L
% [2 y) U+ J2 I0 c3 l) M
/ ?+ V/ ]7 _2 n8 b. [
; I+ A) P6 ?1 r0 h: e6 f" z) m, ?
/ T7 {0 G6 i7 E5 _4 i

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

, p& |- P7 H. O& `/ _! x; v, v
, A+ @: U+ L: L
+ d1 W& \' v- [
用python画漂亮的类似七巧板图形
3 V' K& c+ r+ }; c N1 o; n; Q
! J' o- v5 c5 B+ k6 [/ R
8 v. D: U, y: _, U s

import turtle as tu 调用turtle库

6 b* ~$ P$ \ ]) x& L9 e; D# o- x% f0 R
% u9 M$ G# w1 r3 \/ e7 F
" n( b+ E- I2 R; R2 A8 t d5 y& F/ F

import colorsys 调用颜色

) x9 ^9 F1 }$ Q+ ~* ?( M6 {) A. Y
, t9 {6 T; @% f, `& M. E P" ?
i1 _/ a4 ?8 e: i# Q

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

! |8 v$ D, a6 p
$ D* Q) ?; A3 k+ R, s
! `7 k/ G0 ~0 K2 n! j- d/ _

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

5 J- i* r K% N. {2 ^2 H- v1 q$ W! M
7 D! X) p& b4 t8 A1 U
& [; e. W' L* V

h=0.3 设置色相

/ g8 E6 M, A$ l2 J
+ ]- H& |5 ]: n- k' u
- K' d, ]) r) T8 F6 \4 r5 r

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

4 o; H# O8 L; }. V Y: o" n6 M2 o
0 e8 B, X4 j! ^- c: q6 Q1 ~
) G8 j+ A: ^) U& m; v( [% v7 f ]

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

! @& y( C+ W% s4 o5 m9 C
1 f' s5 y4 _, O$ A2 y
( J# Z, p% `1 ?

t.fillcolor(cl) 填充颜色

' l( O% R5 o# O L2 |
! O1 q, o5 N& U U% G" P
' G- @0 d$ q% C$ |

t.begin_fill() 开始填充

2 @4 p' X8 t. {- ^$ f3 n) \+ p
# v* R5 ^8 j4 a% [4 S- {* q
6 u( @* k0 D& Y' F5 u

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

" s9 N2 E3 ~2 p/ D
6 m6 v; c0 G5 @, o+ o q7 A
4 ` e/ G( z9 {, M3 K) X: x

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

0 a% }8 w2 F: {0 u$ _5 M
$ o+ U. O* Z$ K
Y% P* d: i& c0 E6 y

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

9 d0 a3 O0 e4 t
N) s5 U9 S! @( ^3 Z1 b n
4 C% w1 H& p! e) m9 T4 Q7 V. z

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

( t' j4 v6 f$ _5 H) Z+ y
, x4 S8 O8 T" j+ c' K. R( N @
2 c2 O' R) k% C) P2 p2 w0 L

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

. P+ ^( z; o7 N9 n/ ]
+ t- z0 d0 j9 r; |
. P2 s! N4 u7 L' F

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

; Y8 H3 ~! C! ~9 o8 U0 Q
5 X6 e2 G5 q6 k8 d" w
* \ Y) j+ e. b

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

( C2 ?& ^) ~% d: U4 b( _% \
6 v3 l- L N6 w u C0 L1 L. N1 `
+ Q+ H; ~# C- P3 z/ L @

t.end_fill 结束填充

4 q- M4 r- E! P- N1 S
+ ~3 i4 c" p: ~9 [
9 d& t" @! X! h# f- s+ [3 V9 ~

t.fillcolor(c) 填充颜色

2 D; M: z/ k1 F& V; ~0 m$ C
3 J) Q5 p# n" N) H* V# x
3 ?4 g3 a0 \; w

t.begin_fill() 开始填充

1 Z, N1 A* j) K- }& S
8 I* k: ~$ Q1 F: _
4 ^7 _0 S# ?0 D) t

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

1 H7 q! I- C) U5 n
* O% I+ V1 ?8 \! J+ I: D- A9 l2 C) U7 u
9 a8 T" i1 f% Q" h4 t

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

6 d' `& E9 [6 i
0 Z* @: e$ I" ^
1 y' ?9 P& P8 ?! _* Y! g& [6 e

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

a% }8 T! b: b0 x
8 X8 u% x8 N: J8 g- y% ?. G4 s
: C: \5 D% _" f8 _4 N

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

1 R. O) V8 C9 ^& i5 X, E
+ g* K" { @) n; A% l Z, M
% B6 Z! n6 n; Z* v

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

, J7 ~5 _( Q7 U5 C7 A/ P# Z" d
0 [( a4 F4 I) r+ t. J8 x6 Z
' b$ _6 I9 S% M' m1 C

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

# C$ e4 D8 m* W& z# Z: s% J ]
2 G# l5 I) ~4 N4 S' q& e, { M
+ m2 o( x4 E! o6 e, x: D

t.end_fill() 结束填充

# I& N" C# ?) M8 W; d9 i7 q
& |1 I2 `/ Y2 Y: w9 W1 O O
, k: k; [- l8 {. b4 v3 o, ]/ t! N

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

# k) i! l) x- i. ~6 ?
) q0 d+ Z4 \* D! j7 P1 w
1 O; r7 m: V2 F: M# R( J$ O' j

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

2 K$ R( N( J! [# e: D0 L6 F2 ^
1 H1 y& k) D K5 M: G
, E* b2 M1 _' X6 I8 ]0 r& D. w. R7 b

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

! [+ E9 p4 r- P' C
) c9 \/ C, \+ g' C X" `
/ Q. A3 P& ^& K; m" R* N" d @% h

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

+ ?* m4 Z% F* h& l" I
& Z! ^8 Z0 r3 r1 p5 p0 ~0 A
2 p! S$ n+ T) {* @# I/ q `

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

' t; S8 n4 y& a4 v0 _# ~
9 R* Q5 t1 p: n% M: A& Z, v
/ Y1 b/ o+ C, d r! b7 y, Q7 y

h+=0.15 设置色相

1 G2 I9 X4 V& {" @/ K
0 [6 t+ w f0 \% D- j1 Z
6 H# d0 b' D7 x

t.ht() 隐藏画图

4 H% d. y3 D& L2 L, y
, J) q& Y: R. P) O7 S6 M+ f; |& C
+ O4 O4 L; Y& h7 R, i: c

tu.done() 结束

5 M4 `5 F! p! G- }$ }
- Y- A0 X+ q0 M" n) t
$ h) a( p) T/ d- \5 d: I
6 ~/ t7 P9 S- S! `/ R U
8 _0 T" A7 q& s4 P
* ]+ c4 E$ k& D, a

源码如下:

1 f" l k, r' W2 ~2 J9 p
7 o4 q) f8 U6 R6 U7 z
& ~9 z3 r/ T" C. @8 t

import turtle as tu

% v& N' u) i, ?) n* h; C) v
# F6 k" _: P9 M* d; E& h( ?
7 D3 l1 j) T/ o* F( X

import colorsys

W/ ?: E# b! ^2 m4 W: l% w
/ r( I7 G2 x; V2 B7 s
# x# U- j1 ?% q3 p& B

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

9 r% I. [: O9 Z% L$ \* I7 \/ [
0 j- @! [( b3 L6 j1 [; Q& S
2 X- {% Y; ^: W, z( @

t=tu.Turtle()

2 t: _- W# g- u. b- G
& r O0 Y1 o) }6 ~6 [+ b
" }5 ]5 v/ s K _6 l2 F

h=0.3

1 J0 s$ _2 I$ d( T
+ P* ?' K( E# U
1 ?: b6 m7 `: [

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

8 v" J; L9 m' z& R6 Y
5 f/ z6 \4 H% b- g" n* F: I4 v
. ?# _ ^3 W" u+ x! q" s0 E

t.seth(ang)

! j) \& `1 \1 I1 y4 {7 ]4 o( c. d
8 {7 I* ] S U8 {3 L) P% k
" K5 B5 ^ A" @. }# l( R( W

t.fillcolor(cl)

: D6 K' A' [2 x& b
; A- ^2 j2 o, a* V6 A
4 F/ h) W# A( {& l& Z% c/ e, Z" j

t.begin_fill()

; I3 g, Y9 b: v; Q
/ a5 w) P* B- u" J1 t
- d+ _7 g' k p" [* Z$ `* [( u6 i

t.forward(len)

7 p2 [# g0 g0 {2 M& a8 n' U6 N
4 k; C# F$ b% e+ b- e: `
: G1 i8 b) {9 I/ k' j7 D

t.seth(60+ang)

& r9 w! L0 j+ r1 i3 v, R# N
# z- o* s# \2 Y4 H4 F1 ^
0 ]4 }0 X; h4 L( ?5 B1 X- V( ]

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

6 u' y7 K# j. p2 G% y
, @1 o6 t* F* V8 K3 T% n. A
& `* o/ a/ Z1 p# y

t.seth(150+ang)

4 f, T' o% f8 ~ x. ~* s
9 W9 O" ~/ ?9 d, K/ u" m' z
8 e, h ?) }& w3 A0 X7 B

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

+ n6 H; d& @0 b3 Z5 A1 w
. @' ], F6 u, k; Z. p
# D! o# s, V, {2 d/ G& K( j8 M

t.seth(210+ang)

- x0 r4 ?9 l. P- A9 `6 H4 l% L( a
3 V" [9 J' [/ X) g* X! B: u
9 `3 T+ t& Z" w F5 B. Y

t.forward(len)

* | L" g( A( k- d6 \+ j
+ ~- a2 m7 r' _. x, ^
/ }' \" U7 }6 }! k4 y

t.end_fill

+ V' R2 n3 O5 B2 P
% V5 A/ P. f4 ?, j v$ P8 I$ B
) q# O, [* Z/ M* {7 Y+ C0 b

t.fillcolor(c)

; X/ Z Y9 W$ l3 K
) A. O$ J) y Y
, J1 \0 i! U0 A+ T

t.begin_fill()

) h5 _8 r& ^4 _3 ]% F/ [* g( P( T+ b
% u% G0 F* W G! F
: ^$ a" r0 c5 j! Z2 V3 Q

t.seth(ang+0.01)

* k" W$ q0 [, F! u: A, b. ~! `
# W" O+ w* Z: p; \
& @; c8 Q) s& f1 k9 H; n9 A

t.forward(len/2)

8 q0 B" H8 q1 V0 j; T
0 J# e7 d" q+ Y7 u
3 x' C8 d# q# x' _

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

$ W$ V2 [$ w- L/ a* i5 V
8 E# w5 W3 V3 f# W2 X
9 f& o5 @; X. \& t

t.seth(30+ang)

; U/ h: f- H8 R- c* e3 f5 h
+ l) J& B5 S4 `
. V9 c4 J5 I5 G* N# v

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

. ^. r: h' ^. z; j0 f+ x0 t
: i+ b1 l0 K" {6 c2 Y
0 X' o, B8 U6 m* H# \1 A

t.forward(len/2)

* X) s$ M* c+ Q' S
8 A9 J. l1 z m3 b/ M: b
" H4 R8 Z& d+ ~6 M

t.end_fill()

$ c3 j" ?& ~' x+ ?3 s* p! Q; P4 l
5 L, C/ i5 a4 Y8 L+ N x1 W* B
' m: S, |0 V) |

for i in range(12):

( k0 c9 u3 j- S# _7 a# V
3 s0 Z% v1 L5 G/ X4 w o
1 Z% D( a( K: R

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

/ y9 n2 t/ M) ^& L9 m) x
' A0 i5 f, z$ q5 V
" {0 G7 o$ Y4 w5 g& f1 b

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

) l0 | [. c" r- J( r. R" G
& c, ^, k; k! n) y+ X$ {
4 ?) R3 S$ |, L

t.pencolor(c)

% t9 f: u0 {# L' _: p
- S( q7 t# K& K6 t# L
* G$ B9 \7 A: v7 D9 u

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

( D: }8 d, T' ~) |
% |* a0 H+ W' t8 ~0 z/ u
7 t( \$ b( I) N, A$ l8 ?

h+=0.15

% H+ _. A. u$ w7 G3 l
3 l, _- x2 s s3 \
, S1 b& R+ M; J$ b

t.ht()

8 ?" g- z" _9 `
1 w" x w& t. U/ n: c( \
) \' X& P9 m. [' u

tu.done()

- s4 \! B& K6 k# G) b% d5 r1 i7 ]
4 Y8 d& U% F4 c8 n7 b: i
H) ]( U0 q/ A, G
& Y4 X8 E7 p; E) p4 d7 U
% |0 b- o8 C9 J) K
# j* C7 g, S" M w( d+ R& H; g
举报/反馈
: W; j$ {& h+ ~ M- C% J: C
4 Q; K) S5 }; y/ ~# ` 6 G) f7 ~& F" P8 n4 H5 [ , [- ?8 N/ a7 a+ w ^3 f5 f - j! p: ]8 T: G) x7 U$ x& d! f * T1 \/ B! o- w" _
回复

举报 使用道具

相关帖子

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