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

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

[复制链接]
; }. m# m& c* z+ U, g# z
1 I( t. e. g: ^/ y% _0 N
9 S* X: L3 i! Q! x, X# h, E
! S: T6 B. [5 n) D- ^" D. q
01:39
) \% W0 X; }6 y" D4 n
" W( w- D/ B, G1 o/ \2 H7 ~3 }
* r5 g6 ?* l# z# c, w1 p
: Z5 o4 R5 k- [" y6 b0 W
" s4 ~6 f: ?; U. l6 ~, N( G

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

& v& X' M6 U; t- O q+ ?- s9 |
+ w* I- c) E% |0 J5 n( j/ v
7 C8 o; E! R' j9 D9 \
用python画漂亮的类似七巧板图形
6 r, c5 V2 r1 \& C) E( J8 U: }
; [$ q7 G+ a0 j0 V o: _' r
$ S. \) B& j4 k- ~+ N

import turtle as tu 调用turtle库

$ W# P- B, U Y' j9 m& p5 o
1 v* a d& }# ]
w4 Z6 g7 M- w5 H

import colorsys 调用颜色

4 J% `0 J+ Y0 z/ Z1 l
2 e1 B3 @- T, l$ e! ^
, H, f1 b& Q! Z; p

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

* G `2 b4 @1 W
3 i) D4 t7 ~9 ~6 L) S: {7 D
" P- I3 W `) y' S

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

4 N6 d( i7 f% _7 ^8 [, ?, H' ~
' p. J# Q* X$ z; s( Y9 a5 z0 z5 @4 o
# P6 ^/ e0 S8 b7 k, B

h=0.3 设置色相

L' ^/ J9 Z* ^4 `, P
9 d% e( _4 Y3 K6 g
i6 j! r5 d& ]

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

4 [( S+ A& B: S( E3 ^4 K
4 z1 c' m) x# a
. M8 ?. b/ A3 j( i, f E

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

* X. n( b) v9 ]2 V# B- A& n8 S
; x" _, u, {: ~" W# h/ n$ `7 Q
9 a1 V2 k! s+ v0 z& q

t.fillcolor(cl) 填充颜色

% V: z# C% o2 i% x, ?4 R9 P8 H
: g! @5 v4 J8 F" A
; l& c+ k3 ^7 ^9 s- D

t.begin_fill() 开始填充

6 r% Q8 l) t( \8 {# ?0 Y7 J8 S
. k" j7 V3 k4 h
" ~# |' N1 I \

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

, p* o1 m6 H: i; V0 P% z
4 V* k8 K' g: g5 D
% \: P A* Y0 _0 ^; }! R( U

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

8 R; I, D9 Q% D2 [! Q$ f& L3 T
' t' A* m1 W5 {: z% ~
' L& G# ?8 l3 ]

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

/ A* u6 f$ }4 q% f! \* G* ?$ d: Q4 r
/ p" T. B' p& z# U, u
, V1 r& E8 b# t' b- P# E) b8 D

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

. m9 ]+ F+ J! Y
. B8 F6 Q |3 J$ O1 W
6 w0 f; W7 W3 O7 x9 V' c

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

3 F4 b9 W6 v7 \. g$ {- k: W
2 e" K+ x# k. J2 J( _0 q3 G
2 [4 P. S, \, Z, p

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

* k/ O0 {& D7 S- k
7 K# B) C# t1 X$ P. O
) u9 `+ E9 c E5 s4 @$ A9 ~0 Q, K

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

1 b- o" G0 d( k/ l4 d9 e8 p# s
( \1 C6 y7 U+ W8 B
- u' ^: ?# @+ W: n

t.end_fill 结束填充

' H: A% {' x% n! D* m7 }
9 y4 s$ z% e1 N0 ^/ ~* b
! z X, h4 z( S1 e7 M( J

t.fillcolor(c) 填充颜色

8 \+ Z: {9 w6 ~) s3 l8 q0 d, u
9 w( Z+ g) t6 J+ u; M' j
/ i, }% w; I) I1 A* S- z

t.begin_fill() 开始填充

2 O2 C; {. E2 o$ O5 j/ W; M' k
_: r4 I0 _1 z4 T A/ Z
$ @% `8 M( \1 C8 S, X+ c

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

/ B, E( f# ]+ ~; r7 h6 j
/ X H" O7 ]& e- v) R
) J8 t5 `: h- s6 f& h. V

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

. ?$ w, W1 I; _( ~: _
" R' @& M" N. W% G2 H7 V6 q* Z1 q. {
/ v: c% `+ M# G4 g, y' X6 J2 w+ Y

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

. _" Q5 K6 ~$ q1 g+ ?2 K* `
3 Y; s9 C) a: K: r/ M
5 @6 z# O- c7 y" r: W% ]

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

* Y0 P" m2 b7 C' I0 {1 t
; G4 B: @1 H' ]# w) |5 Y0 J+ m
, ]2 X, U6 W ^. @

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

. p; o/ H" I1 M F. S" r- X
4 b+ G9 L9 |8 l4 q
7 R& k# D! J) ^+ N& I

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

v. f, q" n/ s
1 M! L: u$ i; e' h) g/ U1 h: I
0 S" _& m" p2 W- f" c, X9 O

t.end_fill() 结束填充

) _1 B1 G, D5 P6 }8 b3 ]9 I
7 B4 X, P! }1 q8 c# l- h
& h: h# V( M% o. y

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

0 r# Y; W# Y! x7 C
1 y. o9 a8 u/ a) N' i3 R' j
" r% [) r" M9 h% y" c8 h* U; n2 ?

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

! w' l( z; T0 }; j2 g
1 o+ k* P2 d4 J
' T3 F! u+ L, U# h( Q

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

1 Q P* c9 B$ O" W* j3 ~1 r! k
! C: b: Y- F* |; @2 K" v/ e
9 V" A& D8 S6 |' {

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

/ r. u9 V# {% j+ B
7 z2 N3 D7 o3 p. t7 s; o
# Q' r3 A0 b4 |8 A! F: u3 A5 W

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

3 E3 q9 q- P* ~: p( S1 [6 W
2 J+ {2 F/ h0 `/ A$ E8 }2 t
- h3 l4 n6 A% Z% H

h+=0.15 设置色相

* d3 I( y% V/ N9 Z
- O) J) J2 T; r( I d
! d! x1 Y% {& {" x) W

t.ht() 隐藏画图

6 M2 z% T& W" T6 k& J% L$ w" K- `
% Q) W I; W6 F$ Y/ c- S
% K' o6 J) q2 N, H7 i* k

tu.done() 结束

, X# u( c2 p- v9 E4 `( c# S. ]
6 a# }. T0 p; v
9 |' g% x' x7 M( g
: m' U' I5 j/ g- M7 t `
5 j4 i o. B" _8 w) G% a) q, v
, ?; K; ?$ T. B9 C3 D8 l! H

源码如下:

+ ?1 w4 P! n* Z2 M' |
5 Y- A. L {; |3 l F
0 t7 ^" t- t5 e# B& x. U

import turtle as tu

* P7 N0 |0 H/ t" O+ F1 n
6 m' {" M& E* o* w6 |7 `
. `1 z5 B; c' ?" f% F$ l2 G

import colorsys

4 H. K- G6 M1 R7 R
) x' G$ b2 q' f$ H
+ k6 f/ a. |: r( _

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

, u& T" Y& c2 ~0 x, j
! E$ v: \* u2 B" U+ I3 \
' }$ q" ^9 E0 q) q, n7 E

t=tu.Turtle()

5 P- \6 ]' x% _6 i; L
$ j. p+ y( R! U5 \& C: n
! A0 }6 C/ D/ a5 Q, l

h=0.3

7 O. Z1 b& u! s; t
' p0 _- f% D2 P# B Z; s
% B2 U/ F9 j( x6 s/ s' ^

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

# ]9 c8 {2 d C& Y' G; t p. X' A$ n
0 \% H2 C! g g* ~/ ^0 w, X
. U- I; p8 R o6 K2 ?$ H6 \4 e, R

t.seth(ang)

8 G# P' G7 [; w E
& z x. O6 n, A
8 T/ d2 I6 @; k6 i) {7 O) ~

t.fillcolor(cl)

# [# l) I2 E5 ^1 S1 |5 X* g
% B( O: m* b) k9 s& W: M: ~
`1 Q8 v7 r: B% K$ s+ g

t.begin_fill()

# v( ]) t4 x$ L6 w6 c& \* q
3 Y# i1 k! F a% o+ h& v
7 c. J+ B! I& t/ Q

t.forward(len)

; [ o/ [; {- ]; Y% H+ W
0 G6 Y5 U* Q% ]0 M
" G. w' [* S2 l7 r1 J) g3 {

t.seth(60+ang)

3 U* g- Z0 q' s* C
5 _$ q" J. b9 c' b- Q( A- S
+ |, ^% B# t( N! y9 J0 |9 `

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

6 S9 k4 x' G" s8 j: n R0 M
2 l3 P( ~% q. B- s: F* t
$ y' r( d; C& Y0 w- W) K7 h4 l1 ~

t.seth(150+ang)

; O' I2 A" s g2 c
; W( N) I) o, t
0 h4 t6 ]( i* n. x1 d9 Z

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

0 Z2 ^9 |7 C+ e* s' g) K
" m4 K v' ]" B
8 o' |/ F/ _/ P# {9 R* N- o! Y5 P

t.seth(210+ang)

7 u' q, `/ f9 q. i% v! X5 U! Y
. n8 C- N* s8 Y7 i. s' }8 ]% h) p
7 N% O( L3 G9 ? h

t.forward(len)

v% M% U: x$ U. Y4 M
' h5 z2 i* I/ T: k8 z! J" u4 s
; j$ A. q4 y$ U4 l4 \* T2 W

t.end_fill

3 q% V4 u( Y9 ?7 g3 K6 P( u# H
) y j. \4 I* e' g3 e( E
( c( X5 U( a( Y2 g

t.fillcolor(c)

) M3 _* G6 ^+ m' ?2 ]
7 b# W( e- X* [) }# O; V8 i( P* z
4 b' Y+ Q: S' k0 X# ~

t.begin_fill()

; t7 x( Y) ]; c& U8 [' p- Z
; J- T) }! t; j$ ^' C' f( L
( D/ C' o) d% S5 ~

t.seth(ang+0.01)

' g1 n( ]3 Z+ k5 ]
! l _- w% O4 `; d6 P5 Y& y9 L
$ a/ W! @$ D7 b: `+ \5 L6 e! ^

t.forward(len/2)

1 x% P- d7 ^! ~3 u# N8 _
6 K7 a5 L9 {1 w( v4 o
' l9 i/ W! e: m- k0 G8 w+ u

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

q( Q' z3 V/ g& w9 N$ O; t" i
: u+ W: k: t6 d
% ^) {) A1 \: V) x

t.seth(30+ang)

' j5 E' s; ~3 x& C
0 s) z, F6 u6 F
- q* F8 v* O" G# s: m

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

k% Q. ^( t- e
0 ^1 ^% J+ I; @$ p6 b( m; y; |6 ]
. J9 c# }- c3 i4 O( T

t.forward(len/2)

& H, J* a* h( J3 i- R, j
; [0 {2 A7 o' j
* r8 ^9 n9 a- J4 _3 _0 t

t.end_fill()

: [; U, r/ B2 k
% d) Y N7 c' r9 [6 o
3 x- Q! i! S3 d: b! D, b, K

for i in range(12):

4 I% I$ U; b% v
1 S: z% {) }4 A$ T* N
. A" o) y+ G Q( a( `

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

) c6 h7 I* g2 \- T
s, E0 K$ Q! F+ Q9 T& L& \1 z
/ x/ `" Q- U- n) S1 M& m

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

5 @+ m# a( U8 Q8 C0 ?$ X7 |
/ q' o: q! R$ Z, i q
9 y9 m( O/ d, G$ B3 a

t.pencolor(c)

5 |! P9 l0 t, A* i
5 X8 j+ r+ }8 V/ O& V
( U( Y' ^6 |/ a

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

, ]' b1 ~8 |: u) ?9 Q: R# T/ I
' L4 w! ~* Z( w1 Q0 i3 H3 x
/ j% g5 ^% k: [ r

h+=0.15

% c6 h9 b: Q, n/ F5 L; F
1 J |7 {- Q# w E8 p6 Y7 {
s; _# k, N: a0 A9 G

t.ht()

6 Q0 z3 k: c1 }0 E9 q% {
2 w2 F: S9 t* C7 a8 n' p
* D I9 O' L9 l( [: j

tu.done()

7 \6 B1 \7 |" R4 \
* r* v, W5 ]1 p! z/ r6 A8 j" E" Y; y
" ^/ P d8 P1 g! L: {- X6 J3 F
) M; y- I! g8 E
, A7 o6 ?; E/ |& C) }% U
1 l" r6 j. U' `* W: a1 i( t5 ?
举报/反馈
. q) {$ B: C' l6 P
& Q1 F$ J+ ~/ P6 o! e8 u / Y# q m2 q& ]$ U) e, t, v ( [1 v$ p3 y: y% j ' a7 q; C7 r4 h2 [/ E9 u' N) K! E. J! l; I% }( M" E
回复

举报 使用道具

相关帖子

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