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

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

[复制链接]
5 V% L0 W; N+ Y) M* o& v
9 }, ^9 n i" k( [: U) N5 W# }9 H
2 C7 Q: D, E: x, D
+ ]* M$ R# O4 H# P
01:39
7 y: L6 z1 e7 j7 ?6 Z& t; a! P
9 Q6 D+ Q9 _2 H1 M
: u5 \1 `9 O* L* p! `
6 i4 |6 c+ d, [0 J$ a7 l
6 y% o- O2 z* @( `

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

0 T$ \( \8 w" J0 B2 ?, z
6 x7 H. K4 u; s1 d
! c7 f; a9 l. G3 e
用python画漂亮的类似七巧板图形
* |( v+ N; @; [" c! f9 s
/ V9 |- F/ {# \, F4 X( [9 U; J$ j
2 T1 U% g, _% G4 N U$ {

import turtle as tu 调用turtle库

9 e1 W" }. B. Z) ^) b( R5 g
6 V$ p$ v0 b/ N: A3 y- C1 ?
$ e& t- x' B$ J8 U

import colorsys 调用颜色

* z# Q* Y7 p: S# e! I1 a
- z$ t9 X3 L O5 j8 m5 c" X2 V
/ J V* s% N% q# d

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

* [. M. m+ i8 m5 H
) u6 G7 [; p" B7 p
6 r8 `5 c: L& G2 B0 V7 Y# k

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

$ f% P7 E! J J# _; n1 z, B) i) |
5 c: Y4 }; ]3 ~$ T( b7 }
) l- A* a$ o( I

h=0.3 设置色相

3 s ~3 c" M. m& G: T6 O0 \
* Q3 A4 {$ V2 Z4 s+ H
/ j/ f( n7 d `1 p

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

6 ?! p6 b4 Y" x" p/ m' B
1 Q/ E9 K/ T9 ~, G8 ?: O
9 m& R7 B8 _ [

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

% i, s6 Q, t1 g( r f
, ?0 @0 U9 C V* ^, M3 y0 k7 y6 F
6 ^( s# s3 H& ~$ Q1 ]) J

t.fillcolor(cl) 填充颜色

% d( W3 g" M/ C3 C" e# C) Y
. }- H# j3 H. h( Y
; ?- v. G2 `) w) S% h" z9 \. q

t.begin_fill() 开始填充

0 @+ y# Y0 G# d6 V" M
% u1 p& n8 ~+ F1 Z) e
0 H1 P; U; ? f, O& B

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

4 t2 U8 T S, B1 X: D1 S0 G: a7 V& x
6 E2 B/ P- Q6 s$ t2 z$ ^
. b* j! n2 x7 a; C. d, h- _

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

# O, z+ E) S, u3 {6 X" L0 `4 G
" I0 l# }( [! Q7 n
/ i! H5 g/ U! c y; ~9 g

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

- K& f- b8 p8 W5 {: P2 k
4 h* u; K5 V* G# O# m" v% w
4 }& P# s2 R5 E7 H" h# q! y$ [/ D

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

. N# ~' [: s+ _& Y* G w$ d
6 z5 u! y, j% ]+ t
3 g% N4 p4 w5 l5 N% Q& M# c

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

% `6 [* Q' g: ^4 ?* O
% B. ~2 u( t1 `- a8 m
: Q/ `4 b' `% U6 p; [5 l

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

. P3 ^: p. A& s" _) T
. p+ D- u% P$ {! G
* s( M$ a* F5 L# X

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

$ L( M1 E$ j: v
9 p, p/ k1 V; R7 h9 o3 F+ M' Y
: {& J+ K; e5 P: }- F2 {$ [+ h

t.end_fill 结束填充

( E) C, w) _2 a% B ]9 }0 F# Z1 L
# m4 e8 G+ @$ l$ b6 B
5 W1 u$ M+ ^$ h) L Y! g

t.fillcolor(c) 填充颜色

$ Q3 v! h2 E; g6 X. v: E% ^# ~' [
, y P6 e6 h* O2 w
6 ~* l. X4 l9 {4 s

t.begin_fill() 开始填充

6 y# b6 v1 l, E7 R- m( Y& G2 n
4 e+ ^) ^- h7 [
u0 J2 P# |% O4 R

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

: h4 L( M9 d, L
( w8 u& l" n4 Z6 D. l. J% |* Z. v2 l
: C" M* l4 P$ v( ?3 `

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

1 d; P* i2 K- {1 ?, T- u1 R/ O9 y8 l8 ~
$ W/ V+ S1 j; I* q/ V) n3 D/ T
! ^# ^# s& D$ y2 J; [

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

% S8 I4 q5 R, g
% x$ b. K& Y' X9 i/ u9 j6 Y: y: ^
" Q0 F4 j6 c! d# J

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

3 z7 G0 f8 \& f: L2 U. S- t. t
: r7 j/ ]: ]& `
. N( D. k* v: ~3 r3 w( H

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

9 B0 e3 [. v6 f9 U3 p! n b7 S
! Y! ^) d7 d# d. l5 D
5 X3 y" E7 M8 r; y0 x4 V7 N

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

6 r4 m8 W+ q5 k6 G6 h9 h$ E
4 { x, y% ]: u" \! L8 j4 ` s- U5 t
, o; b! y2 f2 \% o9 b1 V* b+ t

t.end_fill() 结束填充

6 t$ t- J+ F: G! g& Z8 A C
$ M$ @' q* }' u H+ r
9 r, l$ T* }: p7 W! a- ]

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

' h* M* S( L6 ]3 _# y/ v V
* I7 a# H V. `" D* W0 ^1 l1 E. A
! e4 V0 P2 w. r) X' p" q3 {0 R

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

9 n4 Z! H4 \8 d3 f7 t; v0 x$ K
1 k; c! k. W% N" [3 l! T g& i
+ _9 k3 p( Q5 ~% z

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

" n5 V2 I7 m9 `, k7 O
/ ?, |: L+ w$ v: _3 r+ u
+ ^6 G, f, s. W7 h8 t; @3 _

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

, m1 b( Y1 s1 E" [
5 N f; Q! x4 W) D( W
/ z! u: Z% _0 V

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

8 r4 `8 |/ p* |& U' L2 ^; G
3 I& g- A2 _# S
2 G- _3 g/ _; K0 ]' Q$ G7 J

h+=0.15 设置色相

7 Q/ m& s* K: m0 h8 p: G) p
( |' l! |9 W5 j( E
9 j2 i7 X! \# }

t.ht() 隐藏画图

! g+ p+ W0 B: o5 U' ?$ c
; w/ r% B, G; O
; g, @) }, Y8 N% b

tu.done() 结束

3 |- O$ g s: d" L5 R- O' U
* u/ T( j" K. r+ R! [- G1 x& P- M
5 b$ ?: T0 P8 H8 R' X( s
( E+ ?5 ~* n: O O3 t% z
6 s- Q8 B6 x% t# P t
4 _- s% u1 v/ A/ u3 w1 o5 p

源码如下:

! r1 I9 y3 u: `; R$ [$ z
( Q0 V/ t0 {, u
$ H I7 l9 T* J z; j

import turtle as tu

: H5 |, h' x5 a- N' D6 K% j* @
6 q# E' C6 w2 w8 L: v' z
9 ^* B, P( R6 Y# s, D; k

import colorsys

$ U5 X9 o3 |/ l M y% k7 |
8 R- w: e5 r% F
" Y8 M5 h3 Z Q, m' ~& f

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

9 q1 @5 {7 f' Q- `
& n; k3 ^$ U$ ~/ ~0 a) }
% j. D. b- n4 k, X4 J) l. g

t=tu.Turtle()

1 l4 P+ x; `. l% w1 u7 V8 ]4 x
9 a1 E/ u7 R( g4 E0 }( B/ {: W2 r) k
0 L# l& {* R7 C) b/ S

h=0.3

. r) s! x2 S, V) y1 M' p- s+ Z
0 |( }4 e; ?; x; y9 ?3 w3 }6 u
5 @: b* `9 s+ }* v4 ?- Y$ e

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

# f( C) P5 }* s: n- T
# X+ m `! U" a5 t9 z: f# B
: s/ |1 _& J- q0 q0 h0 T X

t.seth(ang)

. }1 X6 S0 n4 T7 g5 }
+ c! P% }6 r x9 N. P
9 y5 U2 g6 y6 M

t.fillcolor(cl)

: r3 }, G1 N, r9 z
" ?" ^" ~! S3 W0 o
$ }; L a1 d7 [2 {

t.begin_fill()

, K/ ]9 M2 j0 j( `- E+ i- H
: J4 M' E* e4 z; D& H
' ?; \- M+ Q4 |. A* g1 l

t.forward(len)

/ @+ o& o; u) @; F- M Y
* f, |' }0 d1 B _$ {) F0 C
5 S1 F, @6 h: V2 b4 A+ U" y# }) ^

t.seth(60+ang)

/ m0 o2 m+ b* c4 `( ]+ P/ A
( v' @( ~5 ?- K2 R! C" Z6 b, `
5 J7 G# M8 q' e, ]9 [

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

, Q4 |, f) ]; M! k
2 X9 e" W) x' E! u/ K- w! I8 W
S3 l3 p3 U3 r2 h

t.seth(150+ang)

; m" i: @! v1 ]# @% p
@, G; |. L. D$ _2 `# |
* y8 j$ G' {# R& V; A

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

$ n) _! |& D: L
e6 j2 W$ E/ d( D- G+ M
9 ` f o* W$ a' E0 }. I* J

t.seth(210+ang)

9 w v; w, x/ V- k2 M0 ]6 B6 ]
, i1 D' ^6 M* d. D0 {
. n& p6 X' r2 \# {" T5 |4 ]* P

t.forward(len)

% [; s- d) V( `0 u/ z
& k1 U a0 X, i# c& a+ z0 t" P9 n( ^1 S
' ]3 S/ L! q @& \2 I8 |

t.end_fill

3 ?9 J8 k1 C* v9 R1 w, O
9 r4 v# g: }4 J4 k
$ Y' t. s7 ?1 W' t# ?: O5 d8 _

t.fillcolor(c)

# ], K; r) s" J& I( w5 _1 w
, q8 W. ]9 Z/ d
0 O: e. @0 @0 |6 D

t.begin_fill()

/ r4 [: q2 o0 I* u! A
p5 Z+ g: g! X7 a
$ H# @( x7 o( {* C* A

t.seth(ang+0.01)

# v* Q. }9 z$ F: B' m1 _
y, E4 ~/ Q, {5 X8 |5 c: n5 E
% j. f# s; b) s* [7 |2 M( \

t.forward(len/2)

! }4 n8 Y3 m9 o/ f0 t/ g" r
0 |9 P3 y6 ]0 F/ ~7 V Y& X: S
* ^. @! w: V1 ^7 d# l

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

" d' W) m% V2 p8 V) d7 k* v" t h
" ?3 w6 s- R4 G
! z6 E" b% k9 }/ \! r, K2 u

t.seth(30+ang)

* e, |3 Y! o$ ^: [: B, g9 e0 Z
5 `$ x0 B6 x0 y! B" F m
S W) T! q- x e

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

+ t5 J. G- T; `$ \; m8 d6 t
8 a' m- s5 e) l
4 D( E0 z6 \- _9 Z% i

t.forward(len/2)

$ _( w, j$ @" z& R' r5 m" K
% Y& N+ r* e6 d
( m3 B8 t- ~/ \" H/ M' z: `5 w5 _

t.end_fill()

7 P. `! ~' R" z& h7 x5 u0 l
, e& N- ]! ]+ G& h7 v+ i H9 Z
6 ^; F. @- F' x# Y

for i in range(12):

L# o: m/ O1 {5 j/ z
1 i0 d+ E0 g: x% p% \1 N
1 U+ U# ~7 p! P2 X, }

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

9 Q2 r3 o, `# F0 x5 B4 [! u
$ J! T8 x) j' l5 l/ Z
9 p3 b; w" x/ u" _% u

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

: W5 Y0 N, G& l. x; @* l3 [
/ `: T2 |; ]4 z T/ ~; Y" H# J# A
4 j6 }/ J) f+ s1 K( v

t.pencolor(c)

3 ^/ _) s) p0 r m$ X9 x
7 {: e+ e: b. N8 R9 V/ V
6 D% ]4 ?& H- I4 A4 @1 j

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

; E; p6 h* B& j& s, O
+ Y- O8 _+ y: {$ c% N
, m! H( G. m1 Y9 p4 ~+ m% |, s; h

h+=0.15

3 a! d3 c- e' D" E. p: t% C
$ c9 Y% \/ m7 ^
* v5 z6 |/ O/ C4 |& S) s

t.ht()

% L1 _1 h# N- L! Y
3 n1 P( f# m6 r u5 C
- d6 c/ b, v2 ?( ?" @

tu.done()

& Z; d8 p5 q8 q) V0 I
" G9 s" e( ^; @
, y: ?6 \9 a! E8 m: M( f
0 d- A3 e0 i& E3 \
: ~ X+ z4 ~8 i
+ ]* d3 x! g* G/ B9 h) u) V; i
举报/反馈
; ?$ O7 f1 e5 h+ \
& D9 U3 V7 b, `- m$ x3 {" e" l; q ) w4 n. P5 N& u/ ]9 b + W5 q9 t+ q1 p* x ' p ?& w- ~+ n( p 6 s$ u( g( K- [( s* X4 c
回复

举报 使用道具

相关帖子

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