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

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

[复制链接]
1 W0 y& a5 w0 L6 ]0 f) `
0 A5 ~4 L5 J% V! U1 O. |, x
2 T9 |+ B# m' k7 i+ _7 n( ^/ ^
+ z/ l: x. _9 H$ @: z. G: j+ z2 _
01:39
; u+ L& F/ e% P6 b
) s7 f1 z W9 L$ N
2 ~- t% u2 _) R- a
1 f8 b2 e# u. f+ F$ H/ {1 `
7 R# n5 a% P! v' L. ~

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

; e! U8 B2 @4 U8 f: W- n9 A
9 \: H3 O: |2 o: T8 m
" x. t2 ] C, {8 c- F
用python画漂亮的类似七巧板图形
1 T4 Y8 p- l: P- ~1 h
N7 H. V9 B! u1 w
+ I% W( J! r, a- F: U6 r9 V

import turtle as tu 调用turtle库

0 E6 X8 i/ N/ n M) u! ?
/ c: y' D7 V9 [: c
; k' i g( N& q% D& @+ [- E T

import colorsys 调用颜色

7 H2 Q! ?& s7 e& R7 n
1 \6 @, Y5 U1 q8 ~4 z- C3 h2 m
: \' `6 |; G- b2 E# Q: g2 x* q

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

" x' m( \) A h* ?0 j7 m
& s# ?& }, i& ~+ G( x$ K: e4 O; _7 F3 q
4 ?5 C7 B+ h* w% s" x/ V& F

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

& c. \& `2 ~: h! s
' N+ S; G) z* _$ C) s5 k1 j4 y
/ r5 t, `) x$ ^. K

h=0.3 设置色相

6 C r9 l' b( K
7 `5 e. y% u* U: f6 w8 a- R
2 K/ H; C# D" O. \9 R- J% G$ Z5 Y" u

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

0 {' ?/ S3 X! ^0 ^) T- b
& b# R% D$ _! ^- u7 L
8 C5 F) `& i$ ~% D

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

% O6 Q+ E' h% }" n& N3 ^- K
$ o$ H# R1 k. [6 B; z4 I3 h9 e" v* [
2 Z" v% Z/ U! ?3 |. E* _

t.fillcolor(cl) 填充颜色

6 Q, u0 T+ q& D7 _8 y
9 e% j* H; t2 P8 x
' i( C+ K" L9 t+ e/ P

t.begin_fill() 开始填充

& d9 y3 B" b" E- J' ^; h
) k% ], Z! [; p
" V! B" k! A& G* d

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

! U+ R9 b3 {4 E7 z6 y* Q
; B0 e2 [: N% _1 I6 G
; W' t7 n+ K, a3 h+ q

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

" W" c, F% q5 z' M" i" t: a0 }
2 B9 U5 B' I- l7 [) i4 H
0 N0 j4 \9 V6 s" t

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

8 r6 |) e5 ^; d, J/ d
3 {+ t# B; N/ I& J# t% s8 M- t# i9 x4 ` S
0 a- [$ _7 n I C6 Q: l9 d4 A

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

# t& R a( Y! @' r2 @8 _
% k* p. }* Q; k; L4 A( `
, G- X' N$ ]3 k3 x+ B9 K; P

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

! ~2 a m9 x1 D
0 J) ^; ]/ j( V+ |* f8 H6 c. d
! e- m4 O1 c, u

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

4 ]2 q3 D# V0 y' P5 f& G
' |5 I7 l3 x! Q& _! I% J' {# U
6 n& [ M6 N- D l* P/ e* k. `8 N

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

5 d8 U. X8 H" p* c P
6 Y) _ ~+ v# `, V! m
9 T6 w9 a! G& l' }. {2 z

t.end_fill 结束填充

# {% D, p0 \# N y& Y! s% ?
. p9 S, @ u7 r
3 P/ _/ g4 [4 W0 B: O

t.fillcolor(c) 填充颜色

: T9 S+ k' P) {- C9 u# S/ ~1 t
k) R' b5 M$ a% \/ g& \* {' O
1 Q. b4 I! G& H) A0 h4 E

t.begin_fill() 开始填充

8 C5 M' M1 `4 E) h( ^8 K4 Q3 z
! V! _2 I+ E! w+ K6 n- z( U
: t) w+ W! g: x1 Q. S: f& o

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

9 t' C7 W+ |* U2 f( I' l$ w
! ]' k7 o" I0 y3 J
+ c0 U* P8 p' ]5 x0 z" v1 m

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

; W! L1 C+ S4 V2 m: G% t
+ r# n, U# I# f) H! P1 N& B
& J% F3 J- R( b4 m! A! E/ n

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

5 H& J+ Q+ r" @5 G2 F
# l# j+ j7 k2 B: p3 r" O. \
, l5 N1 @( H& k( y4 E

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

3 t% ~+ f6 b9 x5 F8 D7 o0 R
& V& ]! |' _, y6 X
+ a; J8 c6 q) k& z1 e

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

7 t& a* m# N0 B1 [8 z
4 T W$ s* D- a6 ^1 h
/ s: @1 A! J/ w) q

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

' I# U* n3 b% C" n$ W8 z
$ I' w- ?+ ?( N6 @
2 k* S0 w, c7 s

t.end_fill() 结束填充

% [- k7 a& | t8 Q( ]
x2 R! N1 B; f$ g
- m/ l, L* K9 u" y

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

8 B. X9 w, f3 J6 o" S0 S2 q! w
+ V4 C# t- K( w
4 h" d" B$ k% v: F

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

% v, f$ p- P% g+ P" n8 E
! D! h+ [$ @, o9 n
/ M1 ]: _( }0 @+ ?6 M( K/ P

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

) o! V/ m Y6 c9 x( t. ]2 d; e& V
6 {# s* L3 q1 }: w, b. M4 {" z
# i1 z0 Q+ F0 U# p+ X$ S# l$ m1 C

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

9 c% i- Y5 o2 l* t3 u. V7 Z
2 O9 r6 m5 v( j" z# ~
4 ^( B H3 F& ]9 M$ f" x; j! c

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

/ H" R. C, [) G4 A
2 k5 l, ?2 ~: j# {) [ I0 ]+ e- ]
# d7 K. q" l3 o+ Y* {

h+=0.15 设置色相

: s* D I% y9 ?% s2 s* d+ q
. \& f q% ]# ], S$ l6 z
, k$ P7 S. z. Q

t.ht() 隐藏画图

8 @1 |# m; Z: f
( _8 V4 U' k! p: W2 E9 Y; J0 y( \2 t
" I7 M+ E1 _0 H3 k

tu.done() 结束

2 Y, ~2 s# B# H) {: p
& B+ j8 ]5 ]# M6 j$ [/ v
0 l& c- d0 N& Q- b9 {3 c8 h& [
) Z5 F; x( M4 [
I( k0 a0 P1 a4 U
+ `- L, X0 Q' y4 F3 L

源码如下:

( F: u6 w4 L7 F" l8 b, e
8 T( H, q0 H" D( ~1 r9 {
0 M. ^1 t' d% a& p: U$ I' \! e

import turtle as tu

, p! ]8 Z! C; S& H) h
( y7 [! N, C( L: C5 H
7 s8 |3 Z. ]5 N- k2 s

import colorsys

9 _/ C# x% O; C7 L; X
$ j. @9 k( S( N# s% ]
7 E. ?- ^" K" F7 f( B- p

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

$ F0 ~3 o9 x5 B' X( V& `
% j0 S n& C' R- L f
9 I% U$ y0 p" y: o/ B- S4 I1 [, k

t=tu.Turtle()

6 _# V. s0 f+ D/ L5 W2 f3 }$ v
3 d8 i& N" D9 w( l
2 x& N2 P1 a! C& c

h=0.3

* F$ g3 K5 Q" C& P) b; P( }; J& _
3 I) G6 \6 P) K
/ v/ ?$ r# J8 B% F3 `+ a4 N l7 v

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

4 J1 O! v- Z1 l& A5 Y
" ]2 V7 Y& p7 a% ^0 [+ y j& X
. j6 R7 ^6 C- L9 [

t.seth(ang)

9 j" W( c: t/ D9 r( n8 x a
7 A0 r4 w- q8 K* d9 K. e' e! O
' i: w3 v$ ]8 d& @: U0 L0 a

t.fillcolor(cl)

1 k* r+ |' s8 O" A' ^- J$ g- u1 }
0 o( _2 b* ~4 z3 V6 H
" m$ k. w/ h, S

t.begin_fill()

5 N, h" O: _& w p5 n1 S
4 Y0 l( V5 P/ m
8 u1 R) y, O& Z# `0 ], ?

t.forward(len)

9 w/ b3 c+ ^) u# q3 B- c
9 P; D. S) A' i; ^$ `# C1 o, O3 F
, s! R1 d9 e8 i1 }! \

t.seth(60+ang)

, c5 M0 i8 b9 S
. L) ^1 m$ d; ~! \* l8 Y5 W' s6 K; [
/ V: @1 g4 Q* q1 Z3 M

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

: f% a: s/ I( T# I
7 {! n4 w. p" {6 Y
& O0 r9 d3 T) t# p" R

t.seth(150+ang)

0 D& w1 I1 ?7 K+ h7 k
% r8 a) v1 f1 L0 [
$ l3 T# v% A. F: q# j

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

$ L `+ k/ S) V) D) Q) U
$ G8 |- f+ u+ }" ~
{+ a7 P; q$ Z+ A& c; @

t.seth(210+ang)

2 Y" D3 l2 g% `% k: e ^! `
& G( n' w9 e& D
/ [- @3 J" ?& ~

t.forward(len)

8 I# b/ @2 x; v% Q6 H% q
# p' K; I. e! q* L
" j& @1 E2 M3 ~8 d2 S5 G$ W

t.end_fill

- |! L) L; P2 q# {) v2 T+ ]* i ?: O
6 {' D/ n6 H0 ?; d# o- l! k; d
! I3 a1 b: @- Q1 x8 {, J

t.fillcolor(c)

Z% i \: O( P; p7 e
1 x! B) X- M$ K/ F: o0 O' ]
: y6 ]/ ?1 a: \9 A$ Z

t.begin_fill()

/ o8 S7 c. K& M; T* F( R
8 e& t h9 R4 `+ H5 x6 q
' a7 u; Z* ?) g9 f

t.seth(ang+0.01)

9 U& h8 {- G$ b" f, J
' F O* v0 _2 l" T
: a; d% x% X/ w# a

t.forward(len/2)

$ l+ F3 A# w3 m( @- u: S7 e
1 A5 [0 k$ m% x3 u
2 O- e Y. S* K! N4 T) ~

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

, D: o" }! o' p$ v" B& u* u- j
$ W" c- X" T( x! P
1 _5 i$ S) g4 s. Q

t.seth(30+ang)

4 ]; {) t/ M3 O$ U# |) l! q& E
; G* C Q6 O/ \ ~- g& b& U0 p P8 `; E
$ ]4 ^. Y# {1 z K

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

$ i6 k9 r2 r$ b* v% ^( K7 O
4 E* I+ t* b3 Q& V3 i
7 N* S& T5 E/ R: L9 [8 N# f8 E

t.forward(len/2)

; r8 ^0 ~" b' R1 I3 H/ a
7 k. }5 P7 h, v. B4 {; z
* G; ]! G& c; O. Y: { c6 Y0 G& D

t.end_fill()

0 a0 d2 z- k- n$ h$ ~
5 D; g$ b+ a# G. F. I7 p/ v$ j" m& L
6 |$ f4 m1 s/ p5 b

for i in range(12):

7 ]; v, m, B( X, S. |
' x9 Z2 O0 K0 j' a7 G- x
+ z9 ^( N6 m0 b6 b

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

% x# f9 H8 Y. R; |/ V# P
" l$ M1 Y: [$ d+ Q
2 a4 \ X; k$ E7 V

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

6 Z" q, |5 ^ o3 x
9 ^! K6 K7 V# t! h* L/ a6 ~( Q% y: S
" K [3 N& ?) P; f2 B: a$ ^

t.pencolor(c)

; F' b. u7 P; ?: }1 V
3 G1 L$ J9 _: V* n
$ q! E+ Q3 {: s& c

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

# m: D, L) r0 z) l' |4 g3 d! P
9 c0 M& I: X, J! s7 [* K3 z( U- Z
; r0 r' e$ C' @' H

h+=0.15

/ V9 E2 A3 D6 e1 u
4 r# f* k2 ~& F! y1 K s8 c
m, d: x: K: G! k

t.ht()

/ b4 }0 J* {/ m. L; n# n
! @, L# D( D/ U5 x
" E2 u( E8 v! p1 }7 F6 U3 L- `

tu.done()

3 |. \3 x: d" Q- Y
8 T. {" p" k- G: H% K( x! E
( p6 c, p% C: ^& W9 T
5 V2 p0 T4 k$ \" I9 s, j- D
8 `5 w+ g1 b! ?& c& p
8 n$ O: y+ G3 h9 X/ I3 ~' x
举报/反馈
7 f' K6 N! k- ^1 e
- C8 m, L$ O5 T: l% s' D - c8 q( p' {4 ^+ l0 `& F4 t2 @* ]5 @3 P" H e! C 2 e' k+ x2 C. c0 ]0 }3 ^2 U. a & F/ a, k9 x: t
回复

举报 使用道具

相关帖子

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