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

[复制链接]
6 |( E3 l& l- @1 B6 u4 n9 `5 U
[* W9 b; Y, `
2 ?2 R9 R; D7 C. X3 C
8 w4 k3 E8 o$ j
01:39
/ m7 S1 r/ }/ N5 p' i: }
1 F0 f# D' F3 U' Z$ m" J
4 G s' \; I4 ?( n
9 z7 ^! d8 C* H& M4 z' q+ e( f0 C
( O4 `. d4 r" Q- W0 t4 G

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

& N/ t' o' c# e7 o0 m& N3 ]; D
+ j. l* @7 J9 C u0 i" ~8 p- ]
% J2 L. i: B, ?
用python画漂亮的类似七巧板图形
( Q2 ?5 b4 ]( F0 B& x! {4 q
5 o* u9 F0 C$ I4 w
% Q9 X1 o/ L9 |/ X! a8 } y. G

import turtle as tu 调用turtle库

4 X3 a4 r' F A$ F# _
* g h' z" k" u4 b9 a
+ U3 ]) H9 A, _

import colorsys 调用颜色

4 g2 }3 F" c0 S% C! ^& B( V
7 O$ j3 i4 j1 l* T1 d+ e
, I3 A2 H- `+ s/ X& x/ y

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

2 ~& X% a3 r7 o" [
# x+ F2 _3 x' S1 n
5 o- ^5 l* R0 w$ l) O

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

6 W, ^2 a& D/ \) }; c
: Y5 n2 c4 c. n" T
" j1 j9 N) N% a4 O) p

h=0.3 设置色相

: D: N i% a X
5 D' |5 e8 j1 \% l0 L
- [" g" z' T! S6 Z) B: p

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

$ |' b( a+ j8 g' G2 L: ^& D
4 y5 Z& a* Q7 J* R+ B
8 N( |' z$ ~) d9 u" q0 f, `

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

) t4 ~& q& n) M; c5 q4 \8 h
% f) y: Y6 }; d6 s! Z4 g
2 `2 H4 G) y; z6 X, {

t.fillcolor(cl) 填充颜色

5 n8 C$ O6 b9 D- Q' B
. ^) k' y2 ?/ o
$ {6 H4 f2 i/ ~+ b+ E( Y$ E

t.begin_fill() 开始填充

2 S& q8 x8 t- m( T/ Z7 ~& W h
# p" Y* T* [/ h; {$ i& c
$ W8 o }" b6 ?

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

" J( Y; i t2 r; E2 C
4 R! a, K9 V9 f# N
- ?+ a O- [/ f- F0 H* D q7 r

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

. v9 u) o6 h4 m$ \9 T
. U3 T* _* o# y
- @" O* ~' r8 Z8 L) Q* [2 l

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

8 J' P8 G+ n* S& z& ]
/ h7 G1 t4 s6 T$ i0 Z1 v. w
! P, ?$ ]+ K6 V# k. @9 Y

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

( y; @' c9 q$ M5 Y2 ]9 }
( v9 r Q7 }7 |1 ^% ]: g; G7 C
) ~0 q5 x& r2 _% w* H0 r

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

}, ]; Y* @" q# K
; e; x9 n2 [) f# ?: I& h
# A+ q9 }% u( Y' S2 t

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

. h% }5 _4 j `- f8 k3 r1 W
/ _9 Y8 I* x) a @8 D
$ O6 U0 ~4 _( c" N% A' y/ [

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

0 V( ]1 Z0 {- ^+ K
; {8 ~1 V4 j& n; d; E& z3 _! g
: z" a: J: L1 e& z4 V3 S `8 Y. x

t.end_fill 结束填充

* D+ ?" E# ^# l
& t& F, O9 e( `8 P6 g8 z' U
7 j) g; ]" P8 t& ^

t.fillcolor(c) 填充颜色

$ l6 n, T$ C6 o2 w5 @ I
; |6 @; q: `2 Z5 \
7 L2 ?. c) r* D; x0 b

t.begin_fill() 开始填充

) D6 a8 \! s" N7 i) m- b# \
+ i# \7 x; n$ u- E3 [7 ^# X
: v- A4 @2 }5 y* c6 m6 K

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

J' U8 e3 o7 D* G" a5 F6 \
' Z5 E' t* m6 x2 V
" V: ^9 n) f# ~+ B& \4 p

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

+ [% y! a* d, \* n7 y2 k- J1 s
5 S/ [3 ?4 t5 K. g" T
* h0 V) K# _4 C+ l

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

e; }% p& U* r0 _+ F) B* N8 P' v
; `6 V' G9 }% E- t+ g
" X1 I- j8 [% t2 [ W7 v5 {2 `

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

# C% [4 N. q" o# ~. p
* Z: ^' c# P4 S* [. B
- q- ?" j. |5 d: R

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

6 M3 [! z6 x" d; T8 G* _4 ]
5 D1 ]3 v, K: D! e% O h* a
" z! F/ f5 u5 S. @& X

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

' U1 V6 T( \- E! K" F& i" n7 \
! e* P( t' q6 T" O. m
" Y k% Z, f, N! R/ F! p

t.end_fill() 结束填充

0 Z2 n4 q- S7 p
; p, P" \+ [/ W o
) |* L" M: \1 N4 X

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

2 _: u, M+ C1 z
+ a ?/ n) q* @* M) f9 W5 A
! w7 ]" ]# k& E" j

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

, Z8 q" ^) v y2 Z
# i. [) g4 s9 u" _) ?2 X" r# I
: S4 l2 e* Q V' q

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

% f0 A- y# s7 g3 h% D; y j0 _
8 J! {7 e k8 l6 d
* g1 [5 S5 z& c3 @: y' Z

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

/ G, n& \1 q& c$ g: ]
+ q& q: N5 x! I/ n9 [) p$ g
( _9 n* f/ H6 t8 j: [0 \/ Z: x1 u

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

1 `. O! U! i+ p, s7 v
* m# {: I4 @# u q' } t" z
/ c; F3 l. D/ \3 D0 e M# v

h+=0.15 设置色相

5 E- z7 Q- S! U/ e8 a: p3 H5 Y
% |1 u4 Z8 M+ X& N- N4 Q
: R a8 ?" Y& |, [8 @

t.ht() 隐藏画图

5 }& C7 w% a9 p
* V8 W' L- ~: Y6 {; V" s6 b! K5 c
' i* r' y2 b/ q0 x( f1 l& n% l+ S

tu.done() 结束

. G/ k9 {# e- V& K/ |+ Z' \9 @. m
' y7 ^2 B( w; `
! M( L: x# t% a3 u& v( A) H
5 f2 w6 N; Y0 ]2 N8 R! N
0 y. m' S" X( q$ L+ P1 F
4 f' O h5 `) p

源码如下:

; g2 V9 G- D9 x: @
' u1 v) n8 c1 M* R# d8 d: E4 K
( U: S$ i2 x V( ^: i0 `

import turtle as tu

0 f- ]& f% a& R+ p" s, Z; E( \" `
1 a6 L9 d# Z6 a3 [ V9 B
/ b! e% }3 W. Z: Q+ m

import colorsys

; s) f9 d8 s8 T# d# o* V% @
/ t) _, u8 }1 B6 X H7 v z( T2 i
* i- u4 p7 @/ ^

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

# J0 }3 a; l9 R
" E* `; A) R& Q. `3 J8 F; N
( y3 Z5 V6 S2 E

t=tu.Turtle()

8 Y V$ G! {9 t9 q7 b
9 X% A, s; G: J" K' [3 i/ Y
4 t" u6 ~, n$ \" T4 @* b/ l

h=0.3

o0 ~" N: s# U4 D. q
- s! q7 ^6 A+ b/ e0 x9 c- V
8 g: M l! ?, D$ m, s/ l. P

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

" a9 x0 n# e3 J$ B, J- P4 X
$ X! R4 ]! D& i! D
: h+ H! a8 c: z- x: y" }, i3 ~7 F

t.seth(ang)

; O$ s- d$ s6 x. V! \9 ^6 @. Y
. s7 Q* o/ D7 E0 p0 z5 g$ w! L- d8 V
* G8 t q" P4 r/ C; F

t.fillcolor(cl)

: g+ c3 _2 f: K
8 [) B3 n$ L4 n& Q+ |/ z
6 F$ k5 ]; G5 r) ?/ A+ u. E5 A

t.begin_fill()

/ f& {) \/ N% U
8 S; d7 W2 M5 f
, C) d. K9 U9 K W

t.forward(len)

9 X; z) h9 A. E0 W. C8 g) P6 A9 l
; L/ s8 {$ r$ J$ |, T
2 D5 p5 L0 a3 r

t.seth(60+ang)

. c; |; |7 b$ a7 f( H G# L5 l
+ ^1 A. ~/ o$ d
$ F! \) g! \* V

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

2 p% `) o9 _3 [( Z5 I- F6 V- T
& ?& l' \: }: p4 Y0 i
/ ]/ a+ D1 a' |2 `1 t$ s& \3 n

t.seth(150+ang)

' I3 O) i9 J8 V! d8 h. l! A3 r
3 u2 o+ G1 T1 q) q4 G
6 N+ M' g. x$ F( V; f# Q

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

( j/ g5 j* G& j
4 n4 d( V& t9 G- Q# m; {
0 M3 _. O1 Z- b

t.seth(210+ang)

# s% L* y- t1 B- c
( {& S, z5 U; g0 Z4 Z1 J% t9 Z& w
; F! Q% }: H, e: f3 Y

t.forward(len)

1 ]4 b3 R4 f! e: [- L
) o% y7 X9 v3 T l7 x) U( f( O
. p3 H+ r& }' r: A: q) a1 |

t.end_fill

( U: i$ h7 R' x+ P e3 ^
/ W; A3 A' N- n; k3 H" ^% g- K: l! }2 m
' k: F, }; k) l; e

t.fillcolor(c)

) ] t& ~1 X! ^) a
6 ^! v/ j4 c8 L V1 p& U0 V
# H) _% I! r0 j1 Y) V6 m

t.begin_fill()

7 I! h; Y2 N, A
) i4 i1 ]" P! R; H9 c: f4 F% _: A
( o/ A( d' G& ~: p# k; G: a9 j

t.seth(ang+0.01)

- M; x4 @$ q5 ~- M
: a, c5 P- h7 `7 C! j* |8 x
. X7 S$ {0 O! U7 _! X+ d6 I

t.forward(len/2)

1 L& u* l' F1 v6 S, }4 V
3 T6 r. j( z1 R# |+ p
2 |' L" G8 o2 _

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

; ?9 Z. b+ M0 ?
: N L- b# d$ g. \1 ?
3 v' j5 u5 F, v8 m/ l1 y8 t- ]8 f! }8 j

t.seth(30+ang)

# s+ V* T M% P! ?
1 f* x; c- w+ `0 {" |/ f
7 J$ ~% F5 N9 [" O; X$ L

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

7 c7 u( b J+ k4 [
# }& h" G& z* D, K# ]
: M6 k# i- e0 ]( `! S

t.forward(len/2)

0 h: I3 g, W u
4 ?3 U# |3 o5 h. C
6 t1 L; g1 o- j9 e

t.end_fill()

' f0 G( L* z- G/ Y+ s0 j+ o+ f1 {
7 @+ f9 W, h8 L6 H- i- t% `0 F( @
4 W/ a& @2 K: G& s# u8 x v( h

for i in range(12):

& \, V. N7 }* j% j' X+ v2 n
* [; p4 a J2 v1 r- l P( Y! ^* {
/ @6 C: t; A5 X0 m

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

% U0 b! w; w7 \( k! K1 ?
: e( \5 }. Q' e
7 v3 U. C0 s7 T% i. E

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

}5 a& I* d4 a9 H0 c- }7 N" i9 M- y
# j2 M+ I( a/ I& @1 f! x% M
" n* C1 j& s$ r" B' z

t.pencolor(c)

3 E: a( k2 H. g( k6 \+ {+ v6 s
P5 n' ?2 o2 T' P
, x6 L& Z+ H0 L- p, m+ ]

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

( i* B* M7 Q9 R
: D3 N9 q5 R c0 x* D' a
; k1 U% b# ?, F8 @1 h$ q

h+=0.15

! a8 v5 b3 n8 n5 o4 y
2 ?0 j/ G1 L% y3 i/ {6 O7 \6 a& m8 ^
; e2 a( W q) s6 ~

t.ht()

* _2 Y9 m) E& U) p- U6 `$ G* z- x
0 Q7 j, P# Q, Z% I# ~
& N$ l3 n2 W- z0 e) ?

tu.done()

% p5 Q; R* V j
2 q0 i0 q! C( \# o/ G' {' r
# l) F! e3 N1 x2 w0 D
; r" t- Q* x1 |) J3 z& C2 x* s3 F
' M5 |3 J7 ~ H% }$ s' ]2 y
& ]' A4 n& Z4 i8 Z1 J9 K
举报/反馈
5 d+ S* S _; J( G" p% Q* |; _
7 K8 K5 u" h8 C5 _3 W) l+ l - @$ {" @5 m7 `/ e, c ) z/ b" G4 }: ?% F; D' g5 ?8 S3 ^& W0 i( | ( R7 k' T, Z$ b% x. a
回复

举报 使用道具

相关帖子

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