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

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

[复制链接]
2 h1 w+ Z1 M. ~- \
) ]# \ t7 F( Q3 V' K$ ?
3 Z$ o1 j+ o7 H% E
, B5 P1 W; c0 @4 ?& m! z: z
01:39
7 h F5 z. u- ^9 k& E9 e& U
8 R8 O+ P7 k! U
* L1 m- A9 e. [' W: p
* z# G& z8 _1 [
. J( f# [/ @, T

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

- n" q# n0 i6 Y( z7 ^$ \* e& \+ z
% \: }# o! [- \' W& w0 m! X* ]
4 I; w N. Q+ T4 ]
用python画漂亮的类似七巧板图形
: P2 ^, N8 T7 J% R: p
) R. {8 z) |& Z1 M6 |. ?
& S( @, V* J9 I/ T6 P. r

import turtle as tu 调用turtle库

* R7 K. q, r% F; n( W* V# E
/ T, { S: q2 J( ?- y) O
9 L: q. f' p, B2 o: } Z! b$ z

import colorsys 调用颜色

- T/ i( K% b% _+ f; ^
* r( }9 G- C' Q& _
1 V% ~/ b3 k9 U T* K2 A, ^

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

" d8 \% C. V1 ^$ L5 S
. Z/ w- ^$ \7 |6 F
8 Q$ y) p1 O4 \; K: M' v) L

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

, Q$ C: }/ \$ d
# V. _' F5 Q) W s4 I
+ O5 B& B3 x9 l( a7 y0 {

h=0.3 设置色相

/ X1 c! Y/ q8 T8 a/ J
% w- [% r% g9 \3 d. \+ u$ ]
; F' I5 m* q( A9 m. H

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

* g* \0 S7 i( i1 b: j- `
/ [; k( h: y& K% D) v' z ~
9 b! }, G7 m; Y L- D! }0 p' `

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

0 t; f$ c( V8 J# O( @
8 n2 A# a" n# Q& a) t5 q `
* Y; c1 j1 H3 ~

t.fillcolor(cl) 填充颜色

$ z! \: Q. j) r
( b, I" M: _+ \- s- m4 G/ j& E4 D
' g. ]& A) l8 v/ |! a. a

t.begin_fill() 开始填充

4 b: m9 x- l( e% L# c' K
8 p% u- F% u' V0 R- i' V
+ Y/ h' Z1 o, }! K% t- P

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

+ a3 X9 J) f% N( j5 o- N
, n, z- C) p6 _! ?
( V6 f3 ~) _0 ]! _# g; K

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

- f+ O$ t- N. {' @
5 z1 K* T) a' \/ g7 w3 q3 I0 {
0 D7 w4 R3 I, }/ y" _# Z1 ]

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

- r% w% Y. I% L" i; _7 U
5 N) h. I' w, N( X+ Z
8 _" c7 N; r- e; V) x, Q

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

0 L" k1 t9 V% K2 t2 a. l2 N- E
3 G* E+ z: j( V- E2 ~
' J% Q( B% v6 a; S

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

A% `% }5 ]6 e4 N' ~( P1 P
# K/ B) r% \( x( @! c. [' u
2 q3 V- H ]; a, K/ l

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

0 X- k+ n4 Y& Z$ q" U
& }. r) R X9 W# N( r# _
7 Z" F+ F x3 x0 Z- b

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

& j- j* p* J% T6 ^
" R! R7 _5 o+ L7 g( P/ i
8 m9 `7 P# B& K. Q; [" i& p

t.end_fill 结束填充

2 I' q r( U. b+ |7 U. r/ M3 T C
5 o2 t% H. c0 S7 |+ G; W" w4 Z8 k
) \: X, \; ]; v2 n4 D6 z( G: _

t.fillcolor(c) 填充颜色

) x5 N8 j/ o0 P( k0 }9 A/ U: N; G
: B# u0 c: \5 m: G
N5 @5 B5 C3 _- Q0 x# Q

t.begin_fill() 开始填充

% b& D# c3 \. B3 i
9 [$ z, ^) _6 O: K8 [# k
! u' P, G6 h/ S }/ u% v1 b

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

0 u3 k Y0 A4 _
% c2 @0 d! r' O" n% P; F( c: J; ~
. {3 s/ ~% d9 ~2 M- l. a7 x9 m) d

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

, p4 ]/ V8 z* G3 d* p4 C
/ Q3 ^5 F2 `3 N8 W/ w" ?
+ K# f" _; [9 |) R8 N

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

* K: S4 z9 X4 v; l. [$ b
- e6 r: r! P- q/ h! F; Z
% k; N& l3 d( U6 }5 u7 y

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

" q& w# [) a3 e* S* r' q( \
% S5 M" D* [! j. M
" d; t/ ]! {* F. `

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

0 g0 A0 B- ^: h) ^6 J
, ^2 _- g4 n. S: [+ ]7 z
1 t. l( b6 F0 ]% X1 X

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

* L5 b* A8 O! }5 X" Q7 @) D7 k
7 n j" L0 g+ y9 s6 Q) V
& Q6 C5 C! I7 h( A0 ] _

t.end_fill() 结束填充

9 c: Y& J# `4 d* b
& P! `+ \$ O& _
1 |+ i$ L7 W3 b7 t

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

( k) \ F* @; q7 r, M
L2 g; @# @' U# \. ^$ r, c
' f3 z4 B: K; b% [% k/ ~* J$ _

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

N# p$ e5 O1 D+ n
: |" ]2 Z* S& l0 |8 j0 d
' h2 _" Y; `; }( j

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

3 P8 Z) t+ e0 M) m/ M& i/ E
# ?2 T; k0 _ j$ a) D+ `6 H
) w" p- q3 o' Y- R8 O/ V

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

4 p+ ^" ?% |" t$ a
. w) ?, `. C; m6 z. ?5 C" n
* x7 ^2 ?, p! u" U0 m! h- E) V6 ?

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

, m" ?- Y2 q/ w7 N* D. x* {
: s. F# q% U* a4 X, I* G( n
1 V1 U H+ n, ^

h+=0.15 设置色相

# Z2 d+ ~% q) w1 _% _
6 J+ G+ h* q' ~6 }5 X
, ], a/ x/ B: ~/ z+ f0 V* n

t.ht() 隐藏画图

5 j0 v% M5 ]* K4 p, u" r
/ ]' F2 i9 l4 ~7 i1 ^6 z. v/ J
c5 i* g9 t1 h. F; E0 O4 m) h4 [

tu.done() 结束

/ o: y' g" F9 m
- O0 K( \: t: H1 g
; T' `7 \. j- k1 M
0 _0 [/ d2 \0 ^
: a' \% |/ X9 {0 E4 U8 f+ L) i J: M
/ u0 I7 m6 u3 W2 { |4 r3 S( x

源码如下:

9 B( } J1 t& Z) u" ^
0 e* r6 D2 T. q# b; Q# u
6 W/ W, N, r% T

import turtle as tu

% G" @1 t# O, c! N$ E; z4 e$ Y2 f# q
) e, l& Z) w! T
5 x. e0 m- V2 [. S* `

import colorsys

, Y' A0 Q9 Z0 k4 |0 d
3 |' Z1 W$ `7 a+ K' X
$ l+ N8 q4 F0 J1 w! `2 V

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

0 }! C& i; |8 B" o
. G: j, b6 u5 f( k0 `
4 V# {+ x7 a. |6 e5 O1 y

t=tu.Turtle()

5 d- A& H+ F H, ]6 b8 h
) n8 I# S+ G* V# l: H. h
1 k7 Y$ J" ^, e1 K$ @) {& F

h=0.3

/ z* l' X, S* b) y- S. S: b- j
3 V7 }# }! ^2 D! Y" d9 Z
9 y* p* n% i3 y5 j. E: S

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

; `7 Y1 Q" Y. S4 b( }: r0 y
2 ?9 S P7 i5 B( Q; J, ^
) u/ U U0 J3 a/ T& ]( p; N

t.seth(ang)

! ]0 ?; f7 {% m6 l
; Z( }8 g/ @- K6 m* P E- l
. R. F: m2 y* ?/ G5 ^

t.fillcolor(cl)

+ m4 G6 U2 v) ~" B0 H
( \! K, n. F, l% G5 a" w# b. g
/ F$ o$ |, t) L# w& J

t.begin_fill()

/ x# }1 }. A& v# Y
. @# B6 y! b9 A' J
" z, a+ e1 f3 X/ A' a5 A# {! Z

t.forward(len)

' E. M! t& E6 D
' _4 I4 c5 F7 k' B$ [6 |
0 X- u; Q: r+ D1 v. x- ~ g

t.seth(60+ang)

4 T( {. g3 s5 _9 M* ]$ l- D( B. o5 W
o% @1 ?* K6 C% L$ ~3 r, ^
0 t" W' N5 c7 @" V" Z Z3 l9 `

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

& B) G! ?9 r+ F0 V; P
9 a: J/ q& \" Z9 p: ~6 [0 E
2 P# j4 d/ P, I% ~& h/ E

t.seth(150+ang)

) z5 C6 t E, [, \3 K% N0 b1 j
# U( E# ]% e2 \. x
9 I9 P8 V7 i- K

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

$ h2 h. F: ]9 t. f/ T i. C, v8 Y2 ?
2 O8 P0 d$ _" j( _$ x. {9 d
5 h9 O. P' z* l( E; N) P1 ?5 F

t.seth(210+ang)

. S" |6 b' q3 Y& ?$ Q8 K
T1 O; @$ d6 i$ a+ o
. k/ r1 _7 L" y0 u

t.forward(len)

5 B+ p \3 I. e* Z" i2 H
. N% C- Y5 u, x5 M2 a
* J4 h/ V' f+ d) r

t.end_fill

8 c1 x8 t h( O @: o" _7 G" B
. {2 z1 d& l6 l' l2 |+ N2 ~; Y9 R. N
1 \/ |8 {7 ^+ H) Z: t

t.fillcolor(c)

' n- }) s/ A- R T- Y7 {8 q- O/ Y& |
8 t6 Q% t S% v+ ~
8 I+ |' z1 z- s0 W! ]* f/ ^ H

t.begin_fill()

5 {1 }3 b4 b" m4 e- V
; O; ?3 j3 o; q7 R
9 a1 z9 G* H1 h

t.seth(ang+0.01)

M, w$ h7 i0 c+ J- N4 Y, n4 m
+ M0 [5 Z3 U( c- P c
4 w- H+ M3 E; E* f

t.forward(len/2)

6 Y# O4 T% |* @$ g+ q+ k* x2 ]+ n
5 }! L0 F9 |9 V3 ^" {; z
- k' i* Y* c7 v& ~; ?4 Y

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

. x' K+ S# Z( ^
: N1 @( x: p1 r
" y& o) d8 F' h7 y0 ~

t.seth(30+ang)

$ u1 v% |0 [. k) Y
5 A& L8 o6 F! T, E
; s: C$ i6 V2 [8 T

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

. u3 ~9 N- Y4 `/ F+ I
+ |+ n2 v; k' v) X) z
* L6 h0 L. r# w, N

t.forward(len/2)

+ G& R1 I# b8 u$ K
- Z2 c$ y5 J. L5 |0 P% }% V. x
9 ^1 c) a/ {: H* {$ j+ S: k" d

t.end_fill()

# C# x/ a0 L& a+ o( ?# ]: }8 T( V8 d
) o3 r5 G% N" ~/ n
' @( M0 H2 k+ J7 m% v& }

for i in range(12):

1 g$ u: V1 N2 u" M
1 ^" E4 D; ?) Y8 o5 b
9 L8 H; E. O- j* y

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

h' q8 h/ i$ f; j# J. a3 L
0 p/ s+ Y6 a8 Q7 w
5 z- i& l% C# I) K5 T

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

D! W, {4 q" _3 F7 S8 W
5 C O+ V4 R; |+ h* E' D
) ^; }+ Y7 ~- g" `; ^. J

t.pencolor(c)

2 m5 o( b1 \% Z0 y& x' ~- s6 W
( i+ _+ Q7 r' X, O& Z* \7 T/ |
& F: X9 v3 o, v) c7 \8 E% K

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

" q4 P: D# q$ n* W% \
+ N0 P& n! U5 I' c% q
1 u. ]( N( q8 H! ?% w$ r0 J

h+=0.15

* ]$ G* d. ~3 p; ]* H
: H2 s: i. l% w1 W1 p0 ~8 _5 B0 ?0 j
$ i# g0 \* E9 K% H* f

t.ht()

6 S( r) w# Q6 ]6 X
D( X8 E" i3 I: k
# p/ Z& @2 d8 `! c, D

tu.done()

8 ]6 @ h% v% {6 ` S! O! {
" y; x: }3 d9 o+ H T1 D7 h
7 a2 t/ W* Q& x9 H8 L5 J# E
' o; N" u& l2 a& `
) i/ H4 F- F) Z# E
4 `, e: V J4 M$ E% o2 e
举报/反馈
* l9 B) E8 z6 a/ P
; M3 i+ [5 X5 C- ]4 V1 g: Y6 N P7 a4 W( g1 J ' e% H2 _" W* S- m% B) y& @ + t( U+ t" W2 j, E. P3 z5 I; n- p 5 t% t8 S: v& ?' r
回复

举报 使用道具

相关帖子

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