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

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

[复制链接]
: s H5 J/ j1 X. M h
. b: p+ r+ s1 v: ^# R
6 G+ G( F" Q3 g$ u8 [9 X4 B6 x
* w8 S' v( n8 {
01:39
& x+ n1 ~& r8 O4 x- q& I& i
5 R1 `7 r+ P( U& j* O: b1 T
% o; ~7 J0 L8 G& _
. L) g r1 P3 b# ?2 \
* Q$ F+ z5 u3 B5 N& T6 [

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

3 ?+ E- H$ b3 P' n N& T
/ W1 |" ?; L$ ^8 g5 S5 d2 G5 \# @3 C0 i
1 {8 L0 F1 A" G0 |
用python画漂亮的类似七巧板图形
& u4 b3 R+ V, h8 J7 w2 Q! ^+ ^
" k S# T0 |6 O+ p5 n
) P; _% E* ~+ v! T8 a! m! f

import turtle as tu 调用turtle库

6 K/ t1 B: P% b6 Q$ U
" J) B& v4 s" j8 v. Z4 s* d
4 ^& n! W) i! `: x

import colorsys 调用颜色

* B6 x0 N- H- L# y
2 s# O& @2 [( z; {8 Y5 c: ^9 ^$ D
8 n2 r8 s) w$ g$ c# y

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

; M: k, W1 T( x2 Q
2 O, e' X) Y8 I
$ s- w# m" F C" I R4 w

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

( U! m) v" k' C+ c6 g
* I8 [8 Q, c. n
* q7 S% s% S$ T" [+ o9 R5 W

h=0.3 设置色相

0 G n4 e( C; B4 h* b
& E+ ]4 [- U9 C& u ^
$ T% Q9 K9 F0 O8 m+ s2 P, G

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

3 D6 I8 J4 U+ V$ Z( o
( r/ r, R" h1 z, O Y
% R. m% D3 K4 U4 ^( M8 C: k1 j/ b

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

5 h' {4 s m+ {/ m ?* z" s3 E
! g5 a1 h) \7 [0 S2 x
( `; j7 J4 W6 E/ u1 x

t.fillcolor(cl) 填充颜色

! z5 L" z9 m: L9 C, X8 s; f
6 E- |8 {# Z" ^, @3 j; K
& a' {* y+ _0 P6 l& A( y: b

t.begin_fill() 开始填充

3 @* Y" D( X/ x) D w2 y
S; }% r5 g2 c- F
6 i3 x! U% L1 ~) f, s

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

' p' p5 _9 n9 k" b5 v; ?
5 x# e/ [7 ?1 [4 `9 g9 u/ [
) l K; A5 h9 }% K0 V

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

/ G1 {5 s5 K' O) @1 M* P
2 U! F }1 Y% m2 Q# {
$ o }* ?. v% [( p9 A/ a/ d

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

6 S' o2 W+ q! r6 S
0 i7 P% Q$ b U3 ?( F/ T
% H) B9 ^ L6 j7 L8 s/ d% c/ L9 d. t

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

5 O% T: ~9 q; W( F
3 l4 {( }- O5 H4 `5 d W
$ |, o6 F" l% k; k6 b- G; l

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

2 N: w0 u5 a; f: T
+ D, [& w- g* l% e: K8 C; i4 a
L! A/ E0 J# R7 E' A; t

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

0 x0 g7 F6 A+ e: p- ]
3 |+ n0 w& j% [2 |. u
% s8 ]/ }7 z9 n3 V4 \5 ~& X

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

* S& t( X. T2 e+ v/ M# v7 U
& y5 i1 o& n2 x/ f$ k$ p* H
3 u* L5 L( @( W e. x6 A' s! D

t.end_fill 结束填充

! `7 K0 a0 c9 H! g
; y2 Q$ c+ V2 z' ^
: D. `- P$ J/ Z' ~+ n% n% g

t.fillcolor(c) 填充颜色

: M1 t2 {" `% z- ~3 D" y1 O
* P; E1 ]8 Q4 S- e+ f
1 a! K8 k6 i( P( R; C$ J z

t.begin_fill() 开始填充

" B* b7 W) V4 N+ l q% K6 Z' t
3 p/ t% [! }! r5 P0 z
6 g' C! O, @/ w1 M9 P) O

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

$ K3 m+ o3 k4 y
% H: s, ]- i$ Q
- u b- R# O- o/ u& g5 R) K' d

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

& A9 S$ L! c5 K# j4 m' i& G" L& l
& d( k9 Y4 j( f5 N
, ~% J. ]; J4 B% e% S1 H9 g

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

! V \2 L! `) ^& B% t1 ]
6 E* H4 b+ I& U7 j
2 @( J* i5 T* [# e6 G

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

/ f K, d. b% s
/ M6 ^* d6 k1 ~7 d' _& _3 R
$ P! F* O( d, o# ?$ T

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

4 s7 C, v9 T) r. x6 [& ^
" R; m( D, y* M5 D( _, v
5 S4 L w5 O4 R; V' V3 y5 U

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

7 _' \+ K/ `* {6 ]' y) R# Y
4 F) A6 K& V; h& {' F
9 ^- ^ ?$ z' {" f3 t" W' g

t.end_fill() 结束填充

# |/ j3 @: Z" p; Q6 V, t7 k4 W
# h* |" F B; B9 x3 Q
# X* D/ k% w# X; D2 J) w% U) h

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

* `9 v" O& u n1 X3 m, j J# x4 K+ `, l
. r5 Q& s% j/ V: \: V* O: V
/ t4 \5 Y% Z/ z# V; t, h

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

& O$ W' f- I- V2 u, h! x
2 N" ~! M! y6 g+ R6 X6 F
; A2 f. d& z9 P* A- E$ F; {

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

d. z% y! H! T/ i9 I
/ z$ B8 v' ?- {9 E2 O
3 ^# t' ?8 I: Q/ e6 N/ U

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

9 A% l, c b# F; L2 k
" Z" d6 ^* Y$ m$ E2 }: d
) n$ B1 Y% I7 O

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

: c$ i: _, b+ g7 ?
2 y8 w) f; b# y" r1 C
3 e' L/ k% b+ b: ]

h+=0.15 设置色相

7 A/ P( D$ q" z8 @- ?
3 ~! ]" N6 D6 V9 T6 [, y( U- n! E6 l
4 I. l% Y# |* [

t.ht() 隐藏画图

1 Z! ~ L" M" G# |3 R$ ]1 l) M
- Z+ c) g9 P n5 o8 f" X0 E# ?8 ^5 d0 s
% [# s- I) G7 P# O# T. b/ x' |

tu.done() 结束

2 o9 \, L0 z6 ?: M) H8 `: j
- i2 f8 M: H l5 L" B: w
6 b* t; [2 }' @. s
( g0 R+ T7 A( `3 C9 y
, E1 D! j2 q" {) H3 P
1 B1 O/ u0 J! w# D+ k$ x

源码如下:

" J0 s: O9 f) `% P9 k
9 u( H& q+ V8 T7 q- N8 N# X
2 i/ X" j8 D' [. x i- c

import turtle as tu

7 P: h+ u+ a8 h- |
( C2 _$ V; t2 d
+ v" |( C! F' u9 r, h8 ?" R: C9 X9 `

import colorsys

+ M5 R0 b% ~; }* T$ Z; u+ ?8 S
5 @" X' B3 o1 G7 A3 F" k
, X& p8 M& N3 w# j4 V3 R# C. k& z

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

0 e4 e3 w' A$ { g* Q/ _9 I* q" a9 C
: s5 a: G/ T( c6 @
* v" \# u# c9 K4 L D

t=tu.Turtle()

' z4 Q9 R2 T h1 M
. a" U- a8 f3 X/ V4 {
6 ]% m: ~0 n( l1 z% B% C

h=0.3

) S$ \ u- g% f" b2 Y" m
. u3 Q- N4 }! g; Q
3 C0 B- c6 [& \2 D- I. T

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

4 f; D/ l2 T1 T4 j; F
# A* n8 L! L8 ?) W& q
2 I, F/ i5 T; u9 A

t.seth(ang)

& _; ?/ A1 ^1 s2 R& J, n
8 o0 g0 T7 d9 u
" L1 P1 e7 o* }" K# G; Q

t.fillcolor(cl)

9 Z. q" N6 x2 D
! c/ W' `' a `' e; ]
( Q0 I n3 h. O t6 Q8 s4 ]) X

t.begin_fill()

) l& l7 `" g4 e2 B6 A
% g; N* D+ k" ]! g
' X# V2 M8 W. b0 t

t.forward(len)

( F' }9 q. B" ~
: q9 O0 q$ r/ Q$ m
3 t2 V; ^& @1 H) ?" U- o; K2 Z

t.seth(60+ang)

( N, H" R9 z, C. D/ T2 }5 F
W1 f7 I3 h4 ]% _" z+ @1 E$ h
& J) B+ V& ?4 J

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

/ Q8 } P2 ?" g1 X: r
8 e4 h: _9 ?5 m1 c) f/ J8 u
1 K1 t% s: p: d' u2 h8 F; Q7 s

t.seth(150+ang)

) w3 b* J9 h; z! o
- J4 q! j9 t4 v4 C$ |; M# J! G
6 F) e" Y) V; {% X, T2 o

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

, e* O; v8 h! n
0 s" u4 U, P6 _$ O
. m+ v. U; R- t& Q3 \

t.seth(210+ang)

& Z) N6 f& |$ C9 }
1 R2 F# F0 Y( @$ E! c- _
: y( x, v+ S; X9 k1 {% ]

t.forward(len)

4 ?5 }0 L, d2 P/ C. }
. G* B% z4 N6 A1 @
$ e( X8 S [) J( L4 D

t.end_fill

* j. E- I% v( ~' e5 e0 ~4 r
# ~* \5 {( }$ V3 s# N; ^
" z/ p, C2 c# [# T! `1 }/ l& K

t.fillcolor(c)

, ^2 W4 w5 v& g8 n8 m# u- n+ C
% a$ T* y. I2 p8 ~: P! M6 d! O
9 P6 o( W6 s0 ~! i7 X7 k ]

t.begin_fill()

0 r/ j# ~8 @, S) h' n) c8 O
. V. D* O- K8 N% v" `. T, @
0 O6 Z$ c* _: I' U" c$ R5 |% d2 J

t.seth(ang+0.01)

3 B3 Q* }( Y! w- A& G
) R1 j: L' Q8 M' h& L. v$ I( } R
; \* u4 s x" A. D

t.forward(len/2)

$ v5 B* m+ V$ ~. z4 |
, ?: j }0 h& O( ^8 a; z
2 ?0 D z( P* V: D4 t

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

1 U& |7 c7 _4 s8 i
0 {$ L3 a3 X* m8 Z$ T2 Q7 ]
9 l& j+ X% A9 Q2 g5 z: X

t.seth(30+ang)

! w4 m- r* f7 _8 K) |! z+ X
7 T1 b! g3 [, j |8 i% o3 Z
* w$ v0 Q( @0 I" J0 Q& Y

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

& }8 d: {0 P0 X/ d/ Q" a
, t, [" x; X/ V
4 W( d/ N) ^1 N$ ]; a e6 O

t.forward(len/2)

6 [8 t% v% ?2 h+ n) p" v0 Z
& _% j7 ?5 t+ q* Q( L
# o& B! J; R7 A1 s5 f( R

t.end_fill()

& S* K. W4 J+ I, _* Z5 w3 Q
w0 L: ]! z* o; o# L/ o
6 t& Z+ q& j3 B+ v/ S: k

for i in range(12):

% g$ A! h B2 `8 s3 q$ ~1 A4 d i
2 v* x8 v+ }& j+ }9 ?
1 q: E7 H7 K3 a1 D( T1 S; |9 h( R/ H4 C

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

% K% z# V- B7 J2 W6 _1 x
0 d, b: ~! V9 A1 W$ p' |# k i
' Q/ G$ {/ y& K0 n9 {

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

" C, w. D) m: q" d: z* B7 C2 E
$ i5 F8 u5 `8 d; U$ O' L8 D/ z) e+ G
5 [# |/ k" v6 f/ L9 B' l

t.pencolor(c)

7 H$ q& c" y6 w: a* g- L9 A
+ |# B* b' X. P7 c- C
% d* {7 D# i. ]" N7 m

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

0 K, u1 u$ c! J% b+ U9 m+ n
6 }8 c `5 z' j0 b$ y o
& L" M& y2 H& S: g+ C8 a- `2 W

h+=0.15

! Q( W: A# o3 o! s% s( R
; [ v/ L" y5 Q, v: b0 U
1 W. W6 P# p- c) D3 V/ f% |

t.ht()

. E0 b% k( m# [ ?& {
* L: M8 Q! ^0 ~ Q) T+ v
" k. Z7 W3 x2 g1 w' y5 L5 n

tu.done()

) p$ c8 K: O' R, f& f
' Z3 l6 V! I; B
+ r) @/ c& f5 r) d7 k/ l
2 w1 c* S" [. E' E
4 ]1 \( z6 o9 |
% j" e1 L0 F& M8 f
举报/反馈
, H+ ]6 z1 P3 x. k( h' L7 J
4 B( ?& v5 A! m7 T: x, |; `7 F5 j. C. T8 I1 J6 }* j. B$ X+ c6 u j 5 p) o" R K& V: G$ P ) K, f. b8 [* t6 Y8 Z j ' L, @* s9 s2 Y
回复

举报 使用道具

相关帖子

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