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

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

[复制链接]
9 t" G7 g5 U: y, k$ h' `1 f( O
% G9 K# X, f' t
' o$ l# Q$ U+ Z
) a) j7 n1 r- o2 w! n8 [3 |
01:39
, [) g% G8 @( ]2 _. H5 b
/ [# |# O' x8 r8 U1 U. A7 N7 F0 i3 z
6 p* ?8 U2 h) l5 W; M# e1 ^; s- W8 s: b
; D- V! a! J. A- f B c, }
4 _& \2 p5 Z. ^ q: }% n9 d

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

/ ]8 h0 M, O% `7 i M9 ~
0 b( n/ R$ q4 \
! `4 W8 Y$ u+ t, v& m. _
用python画漂亮的类似七巧板图形
' u# y, H r0 l P" s
# o+ z$ B$ l! k' ]7 _6 \
, Q% W. F. n9 {5 n

import turtle as tu 调用turtle库

$ G3 x0 V6 l5 b; v
2 |0 a, ?) t2 `- n% _+ P" q6 k. F+ N
# O G/ r1 C" h/ I" O6 F

import colorsys 调用颜色

+ `8 I7 ?# j4 B& T
7 ?" _1 x( K+ H; e; ~2 \# W2 [
2 d- c7 p3 @$ m, n2 |1 _; u

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

5 n9 u& g% Y) Z }8 u+ M
7 I5 i9 Y2 Q& G, U
. m& @8 c! X4 j# O6 q- V

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

6 E/ h3 V; o: M: l
* J/ d, V$ ]2 t+ W3 v! m9 v
$ W' z8 d* r9 U% {+ P* U/ n

h=0.3 设置色相

" [: d7 S( P2 d6 U2 C
0 ]- n' J& N1 M! a+ B. x$ h
. B9 g. F: s9 l

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

" ?, w' e- {, B, _" K' o4 T
+ [; c5 z+ _. U* w5 d
8 x( g( W) X4 o& F* f7 p1 o( x

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

" O( u9 _9 `( b5 C; w2 C
) T; `+ P% o' D# r; ~8 W" j- p* }
% _% w1 ~4 R) ?; P1 V/ b6 O3 y6 h

t.fillcolor(cl) 填充颜色

; h3 E* t3 X! J- M; |; O' ?% E
6 |* z% J3 |8 s% r+ o4 |% ]
^% O5 {% J6 N& l9 Y; M9 F: \

t.begin_fill() 开始填充

: V$ M6 k! w) F+ s2 e
% ]4 V+ Y5 t h# H( U
, p. _7 v+ o" C

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

; v# [' Z/ P9 k) v% B, D! o9 R
& q0 w9 E9 h4 E8 }+ y' M. w# c
2 |: y& `4 m1 i; O% t, J/ _# x% Z$ I

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

& _0 T( E; ^2 Z8 N B
! I1 I, V/ C% J7 B: U5 L7 a9 D
9 k% ~$ a- t2 v5 e- j

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

2 t: m" J1 X2 M# _! X$ d% l
2 t- @, G$ W+ a4 B3 V/ o
6 o% `' A; E; W! u% F9 Q; t3 u

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

2 N' H2 y9 E }! i/ I; T: {5 Y( F4 b
/ y+ h% m4 H! L' Q
% \% U y; c+ z Z5 L! F0 H0 t

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

n+ n4 [! ]' b) `5 U+ B* K9 G
% h p. I8 T, l3 d* p
2 _! P% u4 G5 N% h

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

. r# f4 z+ o4 ?: C/ s5 |2 W: L/ p
) u8 N' z3 }+ M, ~+ J
, A8 {, u+ r. ^# \6 n

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

! H: r0 _8 P/ n% e
* w& J1 Q5 k3 f. G( u
. U+ y/ Q- V/ j4 R7 N- ~! f

t.end_fill 结束填充

$ }" W% B N5 [* D7 @
5 ?1 b" E5 q* Q7 x& l5 e" ^' s
+ q( V( A2 j: J3 p0 [0 t

t.fillcolor(c) 填充颜色

0 L* j# L$ P3 m
1 t& O8 F5 [4 \
2 Z% A) ?: I5 C

t.begin_fill() 开始填充

- O2 V, ~* W( T m* ?
9 z) B3 p( X* d* Q8 J' Q
/ |; l* N% m, x* M

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

3 B* {& l0 p, `; {
6 S/ K! u2 r' ?% q2 w. o+ J$ i
0 Q% W. L, E( C( B: f

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

5 P# B& W1 R! v' G0 s- ~
0 ?& x4 T! W# a* r3 l
, O b- g f2 {7 v

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

* t) S0 m8 z% Z1 Y8 y' S0 A
. h X- g3 \% I
0 M! c) I4 M8 p3 n9 {5 p* q

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

) a4 e1 S3 C$ @) j7 ~
3 M1 q# |" R' n X+ t. H
$ _0 K! t5 D' N

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

: g6 b/ e: b+ v$ v* {! x9 X8 g1 d
2 j, ^ L1 m( m! M
+ o- \+ ]: H) c% |( b+ \

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

1 s* m; v5 ~# P6 E1 x( p0 {: j$ h
1 W; Q7 j \$ c9 F& {3 ?+ N" X
9 V) g9 P3 ?9 H, [" l+ o

t.end_fill() 结束填充

4 v j x* y+ L0 ~2 v" b2 K
) ]9 S' T: p( j: [6 U
5 o% p# C+ A$ n9 m# T/ `

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

1 A' `6 N! Q, ^' j$ {
" o- R8 @7 i- P1 [3 G& n5 }
% w. j3 o" v$ v ]& s! g

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

+ y7 L+ b, ]' b# K0 Q
0 Z) `0 @3 [. I9 z' L: B$ M3 Y
8 X- x4 Q9 j e6 i) L

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

]0 | D, T% V# k0 D5 e: w! f( ]) W
1 b5 g, `# ^$ E. l
; l& M& w' j1 k( |- Q

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

7 k. {$ d1 s L9 f) A
* B. H, \* G$ b5 E5 J
; f# B% z" t$ r+ q* p2 [5 ^

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

% h" v0 T; o4 I, ~6 F. x
' v7 [5 ~$ P! P- \, g/ H- ]& r6 h2 n
+ W2 a( G6 |% z# p$ ]

h+=0.15 设置色相

6 r9 G/ ?( X5 w* i: v
6 W5 x' N8 {6 b" j
4 a( P/ \9 n) \1 D8 B K( G

t.ht() 隐藏画图

1 j; P5 J% @# c8 U4 G- E
. ]! g8 h4 K( U' q. E
# Z# W( Z5 }. [. T

tu.done() 结束

7 \0 p* i9 ~. m- W* W
+ E! C6 d# @9 s+ z3 Q! @
: n, r% ]) h, x8 s( c% j n( p. M
7 Z. e+ q$ @( _
9 q. m, R- V% H. K% X% J
+ p8 j' }6 f" W/ w' @

源码如下:

* x- p8 s/ y: |
! ~0 ~5 K6 _9 F# g4 l. `& E7 B
3 Y" l8 f; t, s, e0 `$ m1 B) p

import turtle as tu

2 |6 N* s! Z) ? K8 p/ ]! |( e
* [% v- @! E) {
; {9 H2 v3 _$ h9 j) Q# f& c

import colorsys

% M9 Q! A: ]2 l8 Z; k, T! ^) p9 Q/ {
( _& \$ L1 L# i9 U( s9 p- N' Z( {/ t
, _& V! B1 [# y' b

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

, B5 E5 g! o; r% a$ c: {
8 M! y) I) }& [# U/ H. ]9 k
0 H2 F( Q7 C1 S

t=tu.Turtle()

8 w/ l, O3 K# @3 y, Q9 E" @& h9 L
: m: J2 ^: t1 e, J
2 [) u+ i% S& I4 i: ^8 N

h=0.3

6 P% U2 }, ^# T1 f1 ?$ L0 s
. A" U: @1 ?4 H: E
1 C4 h3 t( p- o% ]% R/ K& q

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

; x6 _. z9 E6 x1 ?! ^/ g1 a
' X2 c1 W$ W& Q, t/ w2 q( h
( q: G, e4 B' `; c7 C2 x. c" w

t.seth(ang)

+ L4 E& a3 A& y1 |
) h9 ~& S7 o8 ]: T8 F5 O% J
* U7 w9 O. m) }+ C2 E# S9 S

t.fillcolor(cl)

1 _% l0 f6 Q6 u6 ?* k! \& ^7 S: V
0 q3 M1 U8 M4 L# \, e: T, T! J* z
% C* Q7 y4 q2 O6 O9 L1 u& ?7 n; A

t.begin_fill()

+ m* u, X2 n; H
0 V. C1 i. J; Q( B. c D9 {
% J. A. O9 ` F7 T

t.forward(len)

) x/ {- g% L |; n
1 D" L& q- e, @1 p9 J3 x
# K2 p7 J: _# H. w

t.seth(60+ang)

% @4 ~* L9 |, O, p+ Q) e
# W4 @2 J- o+ @1 l8 `4 t! l8 j
: d# g/ F5 k7 t6 ]) O# n y

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

& H( J) g9 K+ L7 F
( E( \4 [% a* [6 | S: ^( b1 ?
1 i- O/ k; ^. w. O; O7 M' e

t.seth(150+ang)

* z4 @# Y/ e* N! {! R1 W
& q1 P. r. d4 E
* y& Z2 u- ~7 ]' l/ T$ ^/ F

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

2 B6 I- c/ h+ B* N1 O9 j: [+ f
# @- z$ F. \- X6 u( L
0 \$ V' `, \1 Z s

t.seth(210+ang)

' T, i- L+ ?$ Q6 [) O* H
4 V7 y% h# X4 ^) w
Q; j$ G3 f) G& t' h' h

t.forward(len)

# C/ A6 Z! |. X2 i: P1 ^$ \8 e
& k7 P8 u$ V5 J3 S1 V6 L3 Z
3 f4 I# s$ e" S$ p/ Z" E" h

t.end_fill

# H. }6 q7 C1 C+ w+ U
! Y& [: C N: r
- L9 R8 `+ h) D: j1 P

t.fillcolor(c)

% I( m ~+ Y8 Y, i
+ N) E* v' M6 w0 I
4 [5 u! @3 `3 V

t.begin_fill()

o1 F( P6 N" q& P" w3 p
- N: ^9 P# D/ f: A# p# }( _
, O r$ x z' A5 f' u- P

t.seth(ang+0.01)

0 U q' p. a( W! \7 ]3 u8 }
% `9 I7 ~, d m# s: H$ s" V4 v# \
6 h2 g! |* b4 r7 ^% {

t.forward(len/2)

* G& B: f2 b6 i8 p( ~
) K* e" S2 a- R
4 @/ v& C# e" K

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

, L) ]% R+ F S: ~
|! l5 w/ ]9 a V
& K1 d8 v! `' Q/ {$ H

t.seth(30+ang)

9 | b5 R# d/ y4 J
3 k7 E7 r h9 ]9 C4 s
1 _4 a- |+ O9 R

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

8 W! C& j7 W& H, v
# g2 Z* W3 N( c* p# Y% P
, S0 Z9 B0 W3 E: e# R9 i

t.forward(len/2)

2 M+ O& G4 g9 i5 h% @% v4 F
& t5 B: X( [9 M3 Z6 G% C! O
+ A9 {3 @- k* p( Y, K

t.end_fill()

/ B& h k% J) f; Z2 x, s
3 y# C5 D. q, F2 m
; ]' [- B, Q x

for i in range(12):

- t5 C9 b* C9 w
# ^3 p% T5 P; r# l0 L8 R
& T' E4 {7 p% s* ]# F1 m

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

9 h/ h( r7 i9 r F
{0 y0 c8 J4 k) h* ]
5 R( l2 Q3 V5 h( b

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

5 [+ |. v6 e; V0 s
% ^/ |0 b7 w3 Q' R, ]; i3 U
) ?! d' A$ B- A' L/ b

t.pencolor(c)

* {7 s, J, c( d: ?7 T* A
, M& k" f0 p# I% l- U5 ?# t
/ \/ s, B6 n6 m" N# D, d$ Y4 u

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

1 F3 Y* W6 P9 j) _
3 \, V9 w0 p3 |6 L, f: S9 t6 }
, ^/ k+ k N! i# q' P6 l- n8 w

h+=0.15

8 Q. q! Y$ Q; K
1 d& k# D, X4 t/ f R
4 z' l% E# N9 ?" Y

t.ht()

4 F/ H7 W, i( e4 m# k
' W8 k' |3 X# M( M; i. R! f. b
5 f/ V5 S+ ~: O/ X+ x6 M

tu.done()

! H% {7 V4 C4 T3 T# ^
/ v8 Y1 n0 `6 I; l, x6 C6 L e$ Q' G& F
Q [5 @, E8 J. \1 s( F+ d
0 h3 `$ T3 [" Y* w9 c' t5 P3 n" I& H
: x, x1 K: B. _2 S* b8 R& c0 h9 u
6 u( ^ y, t. s) a v
举报/反馈
/ G$ t- h4 g0 _! B6 P0 |& U
5 U' W# x, n( h2 s; E 2 h- a' o1 p6 _1 u, K' k H' O: W( a6 Y! z1 X. @7 Y9 @$ [! L : x3 K. q- f: A7 A6 Y4 @! f / O+ p4 d X& s9 @( f" I5 V
回复

举报 使用道具

相关帖子

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