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

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

[复制链接]
4 ?1 }% S( M) G- C- R4 p* L( p8 s- l$ C
7 M, v1 O1 o S( X2 Y/ \. ]
; q1 K! S1 j2 ?0 ~3 i E
% _: t, A* W# J/ I
01:39
. m! D( i3 Y- l5 J0 F; E
! B# z6 B: u6 C) Z% z. h
5 D) \: G m: ~3 T3 K9 f& z& ^
: U& ?0 F) z3 S
8 N: _- {8 U! ^! w* `/ i/ N2 d

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

5 s3 B0 l. g% V3 }
, F: M U" Q3 Q! `. r
, l! }# R8 r8 M+ W# L
用python画漂亮的类似七巧板图形
- }% F' i* z; h( v. ?+ c
! Z9 L- }. {0 s% v
2 Z/ F7 B( g% E) p* C! A% I

import turtle as tu 调用turtle库

9 d8 ?) x: m0 e2 `. R, |6 M5 L4 {# Q. i
$ B' T7 B9 B# e% y5 P
4 X% V" D; Z7 M0 A0 d# G6 R. M# |% e

import colorsys 调用颜色

, q/ D0 e3 P- H- x" C
4 T6 E. t: z& T
3 R0 D0 Z- W: o- x

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

; e+ r# D6 x4 Z, ] H8 E
& c4 } F) k" z. [5 }3 ]% Q
0 \: B+ i+ U1 x4 V/ R& |

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

: L- U% ]' `9 A/ B1 I
# D; C) S6 \) z% Q Z
! J, V/ t4 X2 L1 D+ ? j9 S+ N

h=0.3 设置色相

/ v$ [0 o9 x) X$ Y6 Y
6 a' A$ {2 J" j# d' W* _& W [. u
% m2 |5 k+ @# ^+ B. G

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

; ^0 [; ]" I' L' u. @. u; H' ?6 H& Z6 Y/ s
% h) d3 A6 y4 {
) Q& e6 Y! l& s0 d8 _

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

& k* z: x: Y6 ~; k
0 c8 K4 k* c' ?" P; L1 v# }6 _
9 u/ i$ u5 u9 X4 w

t.fillcolor(cl) 填充颜色

( D: T6 ?# U- l( A) g6 r
1 v& o5 [( h0 h6 U! O
- ^, [6 \0 _; s p! O( n' j1 @

t.begin_fill() 开始填充

) {7 w! H, y, E% `# D7 F5 q* G8 o- |, g
9 ]- L5 T* y1 N1 ~; y
$ m7 l$ Y. \; z4 L+ _% }

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

5 z( o u( r4 w" j
: J( ~. n! Q' D. c Z
& `! U/ V& f% m. b" j

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

1 ]4 {8 k7 a% l/ Q
; `; c6 Y6 K3 {" n
7 n, o% K& m4 }3 {3 A

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

' e/ Z C3 s. A. c. x/ t7 _ B
; I5 d& W2 J6 R) ^- `
j. W% B& z( ^/ ~3 t+ Z

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

& N% U; J# F% {, a! U
" h( Z7 _3 \. @/ \: C
1 r* Q v3 n' a" J0 T7 Y3 L' f

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

/ M7 M# |6 v" _6 ]( t
, Q; g% ^/ T& | @' r% ]' U
X3 j6 l1 V" t8 y+ K+ A

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

* V, U( D* J4 L4 O8 i
1 A% b7 m) p2 c. {/ i' m ?
6 S* ]% v! w7 p* l0 B+ T

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

. { [, p$ a2 K( J& N2 K
& C) N# J) V1 t
! b- v. n+ `, B9 t% q1 U1 t

t.end_fill 结束填充

9 Z# m( g$ f7 q+ [ n: u
( v. ?9 }' H7 j
* Z4 P' i: T+ z$ H- r

t.fillcolor(c) 填充颜色

# p. B- v+ W4 L% o( k/ F
6 j7 r5 C* K$ p% l& m
Q$ O# r# X5 p6 S2 e8 k; S& S9 m

t.begin_fill() 开始填充

7 ~& i# h; h0 s! [
/ \- \8 \9 `0 e; _
# H/ |% `, W1 z3 [

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

' [9 B+ ~* E; b8 ?% r$ N
% q9 k. ]! a$ c8 a0 m) O7 K
% @9 j: g& C. ]& k4 T

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

5 E- a9 s8 q5 h. X2 M& } l' N
; z0 E( V& e$ I% v! _, J
; O# _3 q) [6 H6 A y* z

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

* S8 N$ e" g' G* _+ K
* Z; E# s j: t4 [
7 c. O/ P( q; A$ E/ D3 e3 o

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

) @4 ]. r! |7 G
& T z9 ]/ S. i# a# \
7 G4 k4 O3 \' S8 S/ \/ u

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

3 O7 }/ f; q& w d, X8 Q3 F& W
]& }+ X: W; Q4 w
6 a* ^, k* ~, @7 K

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

5 B8 F4 [" f# i& v
, T" ]. B; R. z( X, ?
! t+ v- }: \5 _

t.end_fill() 结束填充

. c4 ?) ], \) w3 H) _
2 x* J) L0 Y3 |4 a) ?( ~ m. `
& l, E" n, f) b& b e% Z- R

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

: c c5 @1 R& g; D( t* M
! E5 o$ _. Z7 U+ I6 _! u! C- q
# @) r! E5 Y; V6 |4 c) b

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

) t; r4 \/ b1 K4 w) h4 J
: S% s- Z+ x; x$ Q# q e
, C* @( J& A S9 o6 T% @7 m( e

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

H8 N2 R. c/ H
: G4 b" y. {9 {6 t
. I: ^* T3 ^ D# H f$ @

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

m/ g5 [* q# F/ h
+ |) `* t3 o6 M' P v
3 R! x/ U; p4 B& x) e; _7 Q

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

5 n7 U; S2 N0 `5 B: l( x5 o
) k: B D3 ^# o7 T
$ |. p% M+ | ~) n

h+=0.15 设置色相

( O& K/ v9 v* L& b$ _
/ _) p7 j2 \' W. |9 G
4 A6 t2 i( u4 V! c

t.ht() 隐藏画图

6 O# n8 ]0 Y! N6 J8 N6 z$ |
9 b q% b! w: W# j
+ ^6 W* P* h3 h* \

tu.done() 结束

" N% T. {2 ^+ \5 b
) E' n3 U7 X5 h3 J% G4 z7 ?
" p( L$ ]5 e T+ P9 i7 M' C& I
" t/ M( ?& Y$ S( {- B0 ~
& F6 K" E3 z- }7 T8 s
8 H$ ~6 k4 U6 _8 n+ V

源码如下:

* T+ S- L# c) x; n" r
$ Q% d7 I$ b+ m% G: k* l! ~
' j4 ^* _1 H! m* m

import turtle as tu

6 v( Y W$ q5 E- I/ H7 S; Q
* q/ ? ~. E, \) \0 G0 e
+ Y [5 K# G9 @. q/ ~

import colorsys

1 w& C( `7 ? H! }1 F1 Q
2 s# e) e# B% n; J0 e: s. [ C
3 v9 r! s" C4 S' W/ m0 S# N

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

2 j4 { A K ~' @
6 ?6 \& o) o1 E( Q+ X N, u% F
3 B' P$ m- _) S* t0 @* B" F

t=tu.Turtle()

. Z6 T, V( ?2 R$ q
8 N% ~7 q3 h! s
" B/ X* c O L+ ^: Y5 S" U5 ^- q$ I

h=0.3

4 I. R6 `* L% [7 y1 e" O
5 M7 C: h! f, T% I n- D9 ?5 @
! I+ f7 ?* ^: v( d& Y

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

- r$ [5 o0 K: a$ C6 y9 r+ a
( p* U v7 A3 K. I w
+ |. u6 v$ D$ k2 o

t.seth(ang)

# Z ~' m6 B# d
) s; ~3 L E& @. V; R! `1 [" _
7 L, J' p; M; n2 c, ]8 ?

t.fillcolor(cl)

9 P% ^) V( r$ T7 y, B
9 _7 L$ m0 p4 W4 H
7 l4 L. o" _3 k

t.begin_fill()

/ {8 ~6 I1 ?! ]% S- D: f6 g$ f
; }% _- ^! J0 Q, P( N
& B" I0 M6 u- H8 Q" O& R, S" h

t.forward(len)

) {2 X& x% Y0 x9 T" i
5 Y6 i6 X, H" d
9 {7 l& i& _+ C

t.seth(60+ang)

; Q( s1 U8 \4 q5 W1 D
3 M/ ]+ b8 S Q9 z
9 s- ?1 X" _& b6 s' ]

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

6 Q' b: H* C3 \2 t
. ?& F' t. V( n1 J
0 F/ Q8 Z; V( R& B

t.seth(150+ang)

! y: j6 L# C j
! U1 l6 g% _" @" _5 O( E+ r( L
1 N) `+ c6 y' L$ H* |" [0 c1 k

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

$ C* L" |! D$ `/ v+ b: [+ S
# \8 v( J$ q5 @6 E$ m% \! F
+ ]) u& R& k7 f( R/ j

t.seth(210+ang)

4 J* L( i" F7 S3 @$ a
& y( G E! E# Q) M# m2 V0 J8 u
% `2 u: H" `+ n9 E

t.forward(len)

* s4 F0 @8 E% Y& K w% a
4 C1 J4 u, n& K4 q. @) ? m& s
" d) {; j* X8 l, D# A

t.end_fill

; k$ Y5 i- r f$ i$ T% N& T1 H/ V1 u
9 K6 R# t: L: t; k
- P- ?+ k8 N' P) \4 E9 L# B

t.fillcolor(c)

8 [# |9 f7 A' \2 ]
! a0 r2 j. E4 t2 R+ w$ R
3 I+ T; c& X5 O/ M2 u

t.begin_fill()

0 @! Z! l" e+ u3 ]+ ^; Q7 |. @9 _
( K- r5 Q$ M ?
* ?! j( g" P! V" X+ ~0 T

t.seth(ang+0.01)

n0 {. D3 e. q4 d( Y" J
4 y/ J- F! v. J4 A. u! u( {" v
" }" n: T" V3 j5 T

t.forward(len/2)

" e. T0 v- [1 w
3 w0 B7 ?4 u" K1 r, H( r" q
8 u6 }* H3 [& r' j! ]8 Z0 a3 E$ }. |

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

, _( o6 q X3 X( X1 G4 I/ b, t
, q' m7 a' i, e# Q: I! P% ~
4 h# |7 f1 C; K# u5 Z( |0 q

t.seth(30+ang)

4 w& I$ Y2 k; W1 D2 d
" U5 n7 O# u6 l9 S4 v+ S. `
. I' x# ]1 C& x7 y" X

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

; Q* g0 S5 C) W# ?; i! F
* N8 K' _ M; D# q3 A; K
5 a0 f8 S6 s& b- u8 s7 H

t.forward(len/2)

5 c8 O2 q/ R5 p7 H# ]
6 c+ Q, A. s) m
: p# ^4 ? Y3 G3 x6 R4 u ^/ O; L

t.end_fill()

. j& ]0 Z1 r( f. N& X9 b; B
, Y9 m) P8 I D' W; P) \7 Y: X
- O/ e) X) w$ P0 S j

for i in range(12):

! \* F( N' L% V: n% Z
6 j5 W7 R$ E3 X7 M* Z3 Y) |7 I0 z u
% k7 Q- i2 M: q

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

, ?% J# Y0 E: s* c$ D/ u
' h" p( N$ ~; B" t& X/ E3 f+ Z- M
# W0 b8 B; s8 S& [( f4 g# E

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

9 C3 E7 W- h, D* h
) p& g: ?( w$ _) `# a8 `7 T4 b# k
2 N4 |! h* V6 j- H

t.pencolor(c)

5 \, J# @; D3 v4 Q5 `2 f
, R7 s% Q& y& c9 n9 r5 n0 m
4 ?% r* e. s F- m, I

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

: E3 [% |; r, s5 y1 Y& [1 b
3 u$ l" j1 p" P" A6 D+ | L" v) W
1 `9 H0 ~) J/ d; }6 z3 L

h+=0.15

- e. ?6 L0 l* N- H
! A6 P1 W/ b$ z
% Y u% G5 R, `2 ]( C1 B* J4 G4 \

t.ht()

. X- I- c4 Q5 {% B. S
' i8 d& B9 l9 h1 c7 F. k
; a: U8 b4 U! m9 U% U

tu.done()

w- N0 B! U3 f) z# ]. O6 _
/ F- b) c9 C* f/ R3 B
& j/ E# _, ~8 V2 Z
1 l6 j# d W N8 r1 C/ U
. O( D' m8 L/ U X; s
) e% f' M! F1 i: J9 N0 w! o. J
举报/反馈
. e# @9 k6 m K7 }5 n
$ v3 j# I% \: y+ F ) z* T! b% ^# A, b1 a$ m + p* p# W b8 b0 |, U- C: [' Q' h, X7 U9 x, Y+ C" ]4 b 2 f! j! [; A; y7 ^1 N6 L' V
回复

举报 使用道具

相关帖子

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