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

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

[复制链接]
7 d7 W d, X8 D/ a
3 K T4 Z7 {: y0 r! _
; f2 F* M# X: M5 p5 u+ q8 A8 Q: }* t
; D1 g0 N0 Z. s1 K2 Z
01:39
( @0 a* R' H5 k5 @9 d) e
4 C" p- t) r# B5 ]! L
1 ^1 d2 {8 p! [! S; G% h% A* ^6 g5 v
- a' a* N8 L7 H" q
+ N3 b. X* B) E. `; `) _7 @) G

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

4 d- b' U, G8 U! B( v9 t) N
) [+ D4 E: j* h- U0 v# F
" p; p5 X$ w( `7 N6 {
用python画漂亮的类似七巧板图形
: }0 Y) v- M4 Q6 a/ ^2 b
& W# k$ x$ A. h) E( Y, J& ~
2 c0 |% D+ S' `# j

import turtle as tu 调用turtle库

7 p. y4 Y; j8 c2 D0 k
; q5 C5 m, i3 _% \' C* k% F3 [
; q, q q8 ^ i3 R

import colorsys 调用颜色

4 ~2 P3 J7 L- a& c1 }. t5 z' k
6 ~% n) e% x7 ^
9 e* @( u' i7 N+ X+ |

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

/ C% K& t5 Y+ u- {, |/ L
" \* z( T) m: B4 x2 L1 A' Z
/ p8 G( V6 u0 @# d! A

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

& z- M% a" [; R9 t$ l- ]
, o1 ^. m% S, ^& [5 O0 f
) D' S, |* z/ _& e8 K q% H8 k

h=0.3 设置色相

p" ^3 z7 d7 e3 k; k
+ d; S, o; g9 V0 X' C2 u. _5 u
6 R( |1 M1 l0 U) M0 R- b" l

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

5 T# l) v- K0 H; ]0 ~, L
& O+ J' a1 Z0 f' h. a% Q% R
/ a' j j, |% Q% m! G& b% N

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

3 w1 }* T- Y0 Z) t7 a
) D# m: s/ m; x7 J0 F" ^
" t' m$ o6 h; P$ l' w; k

t.fillcolor(cl) 填充颜色

/ h6 D. k: `6 K7 l$ V6 T
: L' N {9 V6 C: L3 F+ A
& V; G) Y3 M n2 B

t.begin_fill() 开始填充

" H ^3 M8 M) `! F, h
- g/ }' | B% u, c. i1 `0 w6 i
5 K5 g/ D B" i1 [& d

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

& K5 y9 V& z. C) T- N+ [
+ a, M. ^; F& H! D
# ?' \7 c, S4 k% ]. r

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

8 M2 c: P* z6 N- B t
. ^7 h% `/ @" j0 k" n7 q! P, d. p& f
9 i& S( ?# j v: O W( q

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

* K; w+ `! }# z* B3 e. G e
a4 M: j! r# ~
/ A" {- O6 ]/ j& w8 S/ z0 n; X! O5 Q

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

% R; Y* I' e$ D- K% {; b
: f7 L! k5 w) l5 J4 S
9 K% \( i/ J( Z6 A3 }8 }

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

/ g% K" i M3 K0 |$ p$ K
6 r, e# z( A6 L# o/ a+ @! G0 d
5 _( T+ {9 |" p6 |* ]2 [( A

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

! w: G5 Z! I0 w B0 D' V8 I
8 Y) I6 K6 ]7 N) T. w
/ P$ ^9 z' A: t% A' A

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

! a8 `0 k/ w2 s" L
; ^1 O. x0 Y, d) b$ B( L! E2 I
, X) f4 z" P5 T ]' J& F7 W

t.end_fill 结束填充

. y% Y) W: L; j4 t5 z
. ~ U! p- L2 E, x1 E6 R8 P
5 ^! P1 v$ O9 J- Z4 D

t.fillcolor(c) 填充颜色

( ~, v9 z( s" s* o
9 {6 t. h* d/ g0 }
~, d. K/ @% O$ p% o

t.begin_fill() 开始填充

& p) p7 [; P- R6 x- V) P
3 C" \: t3 z9 B2 ?0 E3 r0 V3 A
: [! L, V2 Y) ^. s* O8 N

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

" b' l( Y) U( o
4 B @8 W* `7 N3 J' P
2 ]! ?/ l7 N8 n5 T

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

T2 [" Q, Z1 X
% N9 R$ d6 i6 Z$ g- V2 I2 K
4 @( j5 s: L: l; ^# t# N# P

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

/ ?. E$ i+ {. M- Y
; U6 H3 [7 X& D. k6 ~1 k$ ~
$ M7 l3 L% z) t; z: Q1 r# ]7 r

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

" O/ m/ G5 k* z6 C# E1 ~
, a7 Z& s! J, B& I9 m
, G0 G( v, N+ U2 g$ s

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

$ g3 w" C+ I5 _3 ^3 N
4 x3 @* y$ a" v' ]) H" R0 o# Y
+ x* B" \5 \7 ]2 Y9 D

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

8 {& N& `( r* \/ ^- Z# [% b
+ [" b% v0 E+ R2 k" g% n. x3 V) F
5 R3 v" ?0 \( b$ H# O

t.end_fill() 结束填充

& t$ F( q& T9 o! _. F+ a; l1 m, Q
; O: `9 z8 d3 g2 r: }# o0 d
8 X% h! u, h5 w8 m% S

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

' A$ V" ~, l3 E; h7 q U G
* o% L/ P6 v( L6 Y, m* S
, p( P( j. f# E! [: l; t9 ?# E* r1 X

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

% k$ a! o. h. M# F9 m. ?1 r
j, o$ c/ \4 N, ]7 {6 @
- T; \ h6 \! N' C+ t

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

B; z2 L+ H. h
( [: e9 a9 ?; \" Y
{! E/ r4 q; u' \3 C3 r5 t

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

" F( P& o4 [5 T1 L7 j
$ F% P, w3 w3 K
! ]3 `; A" o/ i% u

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

/ C9 f* M! N9 Q8 E+ a3 g: y/ k7 r
+ ~' ?8 y! ?9 b9 _1 {7 g
1 q3 G( h0 p! P2 J4 a' @

h+=0.15 设置色相

* K$ n7 P( C: \
, p) U0 H$ h- R+ x3 y/ M9 _! N- T
# c8 F5 }# F; i$ a" B" k, l

t.ht() 隐藏画图

- R2 g! H4 ?* k( f5 ~! C
: _; }4 f3 g1 i" h' P
, i+ H* P' @$ Y9 M( K* s

tu.done() 结束

1 z5 g( i- Y: ~6 r0 }
5 c3 e$ \- A6 e( g* V! C9 U
+ U% s. k, |4 {2 j3 g
% }( n$ k; |: o* |" ?: l
; m2 h, }3 E, a5 r" G" C
; @$ x$ I# V6 _$ K, v1 Q/ k# b

源码如下:

+ q( O' v$ z3 _/ F; Q+ E
. p! g" f2 M9 G a w: |' S$ Q! N
" d& H& B1 _1 W& I8 y

import turtle as tu

2 t6 y( _2 K. V9 e8 K+ U/ y
! D2 a- h3 X v1 O; P3 S
# t* u: O4 M$ |; o: g9 s) I0 l7 j

import colorsys

) i8 b% Z/ |) x$ `
# a6 `2 ~9 A. b% e5 d' W# l
% \' b& t; q9 w' x

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

& g: P! R2 Q7 V) f+ W/ P5 L
" i, h5 h- @9 ^. C
) m# ^4 P8 ^( i, m& S( D

t=tu.Turtle()

6 K) k0 ~: k2 T$ V
6 P) g- [3 F6 S0 d, l& V) V, U
6 R+ g8 P+ T, J) P

h=0.3

% z# _1 [3 j$ K9 r4 b
8 K% N2 \7 ?3 g8 X4 x
+ f' Z3 X6 r: G" X3 x

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

/ _' A* M l* X, b
5 g5 _, d$ [: O6 {$ s
( S" @4 J K+ f& z" g4 [; x1 Q. K

t.seth(ang)

& F% N M5 K' J; {* j' j
0 o6 r. Z* X: z1 k3 s4 A) f
- {5 ^2 ]1 y- D& ?# ] X0 ]

t.fillcolor(cl)

! ?0 {; p( j. i% _, ]$ x
2 x G0 q4 c c* S* \$ G
) k* k) ^! T. V

t.begin_fill()

- L: M$ N p7 P; @- ~' ~8 t
1 n6 \0 n$ }% I
. Z* g3 C" m/ t: }

t.forward(len)

( J7 G7 E& O# I: a! ?. s
. \9 d' @. g. ] z, ~. E7 P: U
$ Q& f W* E6 Z5 W) D/ r

t.seth(60+ang)

7 H. J8 N0 h/ j
$ b5 H/ y# d5 n& @, [% Q8 G
' y Z( i& s6 }) A# e+ G; S

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

0 y$ j' P# h% q4 H6 {; D
: n: O" G1 A- X# }
% W" K( C8 y% q9 q7 S8 v) y

t.seth(150+ang)

N. |$ T# L% ?) ^# Z/ W! s. \
, X! k$ C/ j* ?+ m( @
( S. b6 I/ F+ z6 `

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

3 d( ?3 n3 |, h9 h1 {, X$ Q) c
6 t& h6 b; ~! \& m& X
_$ l' p- V) S9 \7 t9 V1 r) k

t.seth(210+ang)

5 Y' T9 J+ A4 L; V; ^& _
% k, u# R% Q+ j3 P# c& E
* W, i! d( n$ q! J! x

t.forward(len)

+ J. ?$ \! I& r) b0 T
% R% j% s; i& r- c9 g
4 K! G }* c* p. F

t.end_fill

: G6 A% D8 z% p. C: f: Q% r8 Q
' x9 w) _! j2 R6 A2 ~2 Y) R5 _2 Y4 P- h
H7 ^( E% t& |0 c3 G/ o: \3 G

t.fillcolor(c)

8 K/ ^- j. k( I/ _6 q! e
6 `" O8 Y: G: V. L4 y
9 j" j) s7 X6 a8 M; u; r

t.begin_fill()

: @8 e2 s3 M- P
6 G$ z. B+ a; k! G! q) E
2 |5 Y/ L9 C1 c: {" u

t.seth(ang+0.01)

( w7 r1 W0 K1 M# H: B c) H, {* g$ B
, P5 ?& v% { N/ f& r; b% u
* x% ^, {4 k5 X! B- d9 e

t.forward(len/2)

9 f, \( i7 _0 F' r. Q B4 k8 c
1 b, W+ h$ }7 @( B6 V& @
' h& A/ t4 W6 i

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

5 j" W# i, |& f* t3 T4 }) @
1 d/ R" p" U6 Z! k" R9 { h) o
% ?+ ^: y3 a! J( l. e

t.seth(30+ang)

% Q; ~+ `3 f, h5 u
# x& P7 N P9 ]
: A2 F$ E' w0 A' q

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

, T4 ^1 K0 P" T2 V" `/ S. Q
6 g( O0 i0 I" @4 D; w$ O2 F6 {
" s! y' N% |4 q1 d- {" T% S/ ^. z

t.forward(len/2)

5 O7 `: u9 x0 W) D3 @$ C
, x: Y* U6 r4 @9 |; e# ]
( s7 X, h5 K A" z' f

t.end_fill()

! Q* x! E% u- Q: |/ k N8 |# i
: Z2 j2 w$ N- c) x/ b' c! _
7 A4 P, w+ a3 q3 I: y

for i in range(12):

8 ~4 ]. b0 n9 S
/ a% ]" Z3 V6 C& ^' j( n( b! H0 U
1 R! f$ r- W4 f

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

1 e: _7 D$ K% p6 }0 @! D
F5 H: m4 A$ F" G# F8 b
! V3 r3 O' Z* g& E

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

5 D9 y% [, T6 f5 R
$ ~5 P+ I) S3 c9 y6 g, o
3 ~# F6 }3 J% A) u; V6 \5 G

t.pencolor(c)

! e J$ l# w L. _9 k
8 ~% q. [; ~: h# [6 f& z
7 i& `# c; D) x$ F

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

8 r5 W: C. t6 _. }
& I* F1 J' W& f: F, ?
2 c3 X% W5 X# @1 F7 s9 B# [6 P5 b

h+=0.15

$ W( Z4 K7 u6 e; g& D
8 a0 l8 A+ ~8 H8 d/ g* m2 L
: g1 f! I% u- _+ \9 o8 J: F

t.ht()

6 P6 i/ D7 v- ~# z; e
% j1 g( N) `, K" t2 f# _) R
9 _+ X% f8 [3 y) F

tu.done()

3 \. O: Z$ a! |7 I2 ~$ W, f1 o
/ u+ n; f% d3 m7 f; r; l
7 A9 R. Y$ Z+ [8 P# }3 m
6 F. G" z1 o7 R" t$ U% V
/ b l$ X" ]' v
1 f) m# D! i4 T) `- h- P; v9 _
举报/反馈
( F. c- u2 c3 ?. d$ ~; m- E
+ v/ T( B6 {5 X- x. A) A , H) \6 J9 n. l6 }; ^ . M" u* o8 X4 X" F8 J( q& |5 b/ n" s( o' v- D . q& {& d' }! N" u! L' n. a
回复

举报 使用道具

相关帖子

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