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

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

[复制链接]
" P4 Y) G- p3 ^& \5 o
7 V: m6 |" e4 F6 y
- M4 F- F+ k( \9 B
2 k' x; C- e7 L- ^$ {' \
01:39
( M/ Z8 ~% z; \+ |2 b
! p t6 N: ~/ j( e& M
1 ]6 h. ~ k" l7 z% G* N; U9 P- q
- z" F1 u: r% `0 N
) ]3 [: i9 \0 `( s6 J4 f( P

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

0 P5 I" z9 t+ C2 I" i. R/ \
3 h$ o( i j2 q# _9 O; O
* Z! m1 W1 x( i. c
用python画漂亮的类似七巧板图形
8 l" Z$ l6 R5 O
' s: K2 ~% e' z5 M
$ l& D1 y1 G8 J3 e

import turtle as tu 调用turtle库

8 ^- L0 N2 V7 O% O5 D2 V) k4 [
( Z! {! p/ Q) N9 P+ m. d$ @
) P9 a0 D( c- @+ C2 u8 Z0 j9 @) W

import colorsys 调用颜色

, Q% k3 Z3 |* H' g7 C
6 h6 ]* i5 C1 D- ^5 B: v+ {. |* B
& k; U8 `( b" o6 d4 M9 W ]

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

- O5 _7 |0 |/ W; ?
' j2 V6 v# B% d$ M
' |9 _9 r+ |' }7 G$ h

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

+ p m' j. A* F
; o5 E2 n$ y* u1 _% U0 c6 k% _, P/ E
_8 E# `9 j2 q& `

h=0.3 设置色相

' q7 j. P2 K0 W2 w
N! z' D" o8 u3 y5 W9 R: [
/ C( M4 D% M* _% o" u ^# ]

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

( N. {5 Q- t% `
c9 }1 m$ h2 `& E+ ^* }0 q7 m6 I
9 W# q7 N/ l" g% z5 q

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

/ w3 y2 n* u7 ^8 A8 q
/ |0 o5 f0 p) @) C+ `, I
4 s x8 W$ }6 ~; u& ] V+ V

t.fillcolor(cl) 填充颜色

) k4 a- n5 B% a
! c0 I _3 w# b. R4 E3 L. l
* i1 y) f A$ g8 O+ w: t% o% E

t.begin_fill() 开始填充

" t( U( [/ ]9 N# p5 v3 f
7 C# J- ? D9 E, e0 |. F4 p
4 e& j. n( A; K& z. O

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

. J7 \* o1 q! e0 V
1 I. r ?# Q, V) \3 B1 m
6 z% B3 m$ E3 a* s8 _

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

1 x" ~8 f* G5 }2 _4 z8 u7 P
: ?6 k5 E& F: T
5 }( z; v: z$ j+ a6 d

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

- X+ j; x; @0 F* H' ]" `
$ p6 N. L$ N, Z, }% a0 a
1 N$ i& o$ I/ @) g

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

: C# ?5 N1 S: W' p7 }/ x
/ S) r' J+ @ @$ p
1 V! ?" u! u8 y( G# M# P

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

. d' V% L, C; P, f
& J! Y! R- t7 Z8 d
( e* A. u1 Z( G& @

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

$ @) B. x0 y: d: l
' H# y, \2 l0 u0 D( K
+ S2 \" ^( A: W! t, w: [* t

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

7 y5 E' }; X" D+ J2 a1 ~
' U+ H) w( c$ m9 U1 Q R; ]; i1 }3 Q
7 e+ f& M3 u! {/ O9 T+ ?$ i

t.end_fill 结束填充

. B% U4 Y: d- o1 N+ n/ v* _/ y% ?
8 W% N h1 l% z! m$ Z# E- K- X6 z% g
0 T Z5 E4 o/ z* y& x3 b

t.fillcolor(c) 填充颜色

+ X+ h A2 E; V0 G3 G1 n% c
4 K# d' Q5 u6 ?
0 v1 [: a# U2 a

t.begin_fill() 开始填充

3 E. O: p: E: G' s
4 b& |9 @4 \( S$ t: ~+ d1 y' X
: C2 A) [: g a; s& Z0 Z3 ^

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

( O% }: _- P V8 D. B% f Y3 j2 R
# S* D [* C! [( k& M
5 O( F) @- m0 L& ~

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

4 {3 `1 k& }7 i; ]; T
8 X; f$ O4 Y3 v+ w
( |9 ?9 d. a& F( v, J) D% V

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

6 I, d1 I; V8 \' _2 R- }; r
0 e/ o6 Z3 P; N
. c3 z+ Y! k5 E1 u( E' R

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

( i( D. u0 T4 H# _
# Y& @$ W9 i8 u4 e9 O5 k! ^
8 K5 \# [) S8 G% K7 a: [

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

1 X# ]0 c6 Y/ l$ P1 \
2 F- A% j9 G$ s+ i# j1 Q1 u/ `
' V5 y; M, L G! C% G$ h

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

' ~3 P5 k6 o' K
$ h! @$ l4 g' P" @( Y: K' P7 S
$ r5 K5 f' o- a+ V

t.end_fill() 结束填充

# o1 m N/ |) E5 Z8 B
1 r) V3 O1 ?. `9 u) v# P
! ^' u# L5 A$ ?

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

; W q" t L, R0 y: E
/ k1 g* T* k6 b z. G8 b7 J
+ d- Y" i+ O" o( J

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

1 W/ w: z$ A, B% Z7 q1 w; \
* J! f q0 U3 s, _/ K
4 _+ s0 n1 X9 P, }; K! i

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

3 R/ e2 Y% c z8 D
, u3 u3 v. K' p4 h4 |( Q
/ g$ u0 p- ]) o2 w& M

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

8 R- J! S" K; U; m- o
) \* e2 Z/ ~8 c1 H( v! T5 y
" @% h. }0 U6 b5 _ Q* F$ J

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

" \. ~4 t8 U- E
& ~/ }. Q1 h o6 ~9 _
) g, ?5 S) Y3 O& m: |

h+=0.15 设置色相

. u8 A; g' A+ m/ k' f3 u4 \ C$ p
* z* _7 \7 V7 c
) C* c* O0 W( P, H. Y

t.ht() 隐藏画图

. l2 I d9 Z2 t/ B
) n: ?4 U" N+ P/ `
% w: P/ O! }! `" @& y& l

tu.done() 结束

9 Z$ J3 _8 H8 B# p# K7 D
9 x) e2 S5 R' ~! n& N8 H7 ^) e) ?
( M; A( T) C' q0 }2 V/ W! F1 \
+ y9 n* }' g1 }
~7 q% o* @0 M2 T! a
$ `: d f% |- J

源码如下:

& t2 x2 i9 y# M( e* B
5 N1 `; H u5 n1 K% m1 w
. n3 I5 N9 s( g

import turtle as tu

# p, c$ @2 t2 Q. M
! g2 L* _: a4 ]" c) V
; P/ n- m" a' f

import colorsys

8 Y2 _8 U& d+ }: ]
: f0 c! Y# R* A2 W n
9 z7 m/ a. I1 @' h7 z2 v5 {

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

% ^9 D; R; M% Z: T2 P4 \: `" i
4 |" c) u' d7 G u
8 t# }) Z' x k; a3 L' x& [5 k

t=tu.Turtle()

" }" u7 l; B' j* i4 l* h
) R9 |3 }/ S( t7 l3 I
; E c0 T9 V M; x% Z$ v

h=0.3

( ~4 E, g s; A; n7 d
]5 t- v7 e) S' Z! G9 i& c# U& A
- [+ R" E6 C* { C

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

4 V1 x; ^# b% b+ Z
A" b7 @, U7 g
5 u& B; s. j' t" Z' c& w

t.seth(ang)

- B1 ^& f5 n2 l4 }- ^
|# i: R* a& l6 b. m4 S
+ ^5 W: }0 O+ X/ ?

t.fillcolor(cl)

- c2 O8 Z2 R; W& G+ H
6 J- M/ [! G; U6 x
- O( g0 t6 O/ f' ^! d7 r8 Z$ K

t.begin_fill()

: ]8 ?8 D0 X# r+ h
% z; G: t2 g/ x; j' ]1 K3 c0 q" I
9 P8 _. G) b- ? v* C; \

t.forward(len)

! B: p; s* D5 U3 J3 l
. X- w+ A& d- @+ N% V
/ Q" [* Z! ]9 Z6 ^: b

t.seth(60+ang)

* {8 G3 `/ b X. h3 _
) D3 B6 Q) D, p5 J0 h% \5 L) W
* a0 ?* D+ T! G) _7 D( G0 m! H( a6 `

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

$ _1 {6 S; m! p/ U* i0 z
7 S0 j2 X+ m: p- F0 E) _, o
4 I6 X. D" C5 i8 c2 G. ^8 x1 |! D

t.seth(150+ang)

2 c- `0 J1 E" b0 K
' A3 T* X' v& P8 W& ]0 H
. B- D( ?1 q- N

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

1 c7 |+ A, C" m" x7 g$ x2 p& p( a
! P+ O& P. w% j* z7 O
6 A# y: D1 H5 y+ ~! D

t.seth(210+ang)

" p" X" X+ A9 D& J+ Q% w/ U K
7 E1 U; j1 O' N0 Z( k8 G
5 {7 y5 t( U( X6 Q1 x

t.forward(len)

" I) \! H$ z7 @5 \- t# K3 _2 N
- G$ v) k4 n5 O8 S7 y6 |! U
& G0 Y$ S* s# T5 b" N% b

t.end_fill

6 ^" A5 e$ i! G& m8 d
3 P" |6 k b G. r& R
. c E+ A- u# `7 f# R; l

t.fillcolor(c)

) ^: ^& G4 M3 d! w, j( W U
6 `! X6 b. J) z. \
9 r+ T# q+ |* R9 G! B b) M

t.begin_fill()

& P1 [ T* i/ \: I5 Y) ^
, h2 B8 ]( S+ Z& o% _& H2 T; o; S A' I
2 [, P' I% Y6 P" R( Q+ h

t.seth(ang+0.01)

3 o5 w$ I. O- E0 p; i# u
% `2 x' }( ?7 N* b7 C* W, L
' j$ Q% ]% Y" d$ B) |1 m

t.forward(len/2)

3 Q- E/ h, `4 S* W* `8 @
2 d) [. ^8 P b6 _/ ~ f
1 H9 O4 E& H) n

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

0 t/ B0 i) s' ]7 {( J2 |
# y, r9 T* U. H4 f
5 e+ I) y; K2 l5 W

t.seth(30+ang)

$ j: n# |* k2 {8 R4 Q7 w3 K1 L
. B, E, I Z ~# h( `7 B" E% ?4 n$ j
" h- v4 P; y) R5 k q$ W' C

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

2 q! p4 k, X8 m" t, `; P
, j k( h1 W( {2 U
% r2 c x. X, ~$ f- L* z1 c/ y

t.forward(len/2)

; ?) O( c( m: O {. E
0 P/ }) j) a& \
9 O- ^: X2 f! E; Z* M

t.end_fill()

5 ^4 H& l0 t: V/ U- y: V
+ l9 z0 I$ o& S) R/ |
* P9 J7 B9 R. w, v ?! |/ ?

for i in range(12):

* r O6 A) U8 W7 ?7 P! ^
9 {' y8 G2 Z6 Q5 c9 [
7 d: Z+ y( _$ u7 X

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

1 }# m- |+ Y6 Z, j8 F6 ^- h
8 w7 K6 E$ v1 m# M
, z }; e; e+ U. }. i: W/ W

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

( b% K0 D6 B: N: [6 m: R
& r/ h( r! c+ c: S T, {0 E5 f% O
- X" N% r8 a! v! k( f3 W' v

t.pencolor(c)

! R& `& x0 v! o3 ^/ \6 ?
' d% |3 r9 p7 Q! j: @
7 d5 E' y1 a7 T6 i# T5 P

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

0 ]% g0 y- S) S/ F6 F; ?
7 P3 C6 S4 V2 _$ q9 m
# \) E$ [% U% K8 C) m) D; A

h+=0.15

' N @7 e/ z6 {' I- O! k% R
2 S' j; l: U+ L/ k! |3 |" y
! ?+ y$ i8 c+ @8 a2 c, [. j

t.ht()

3 Y9 }! z7 T) h" p
, |2 O! q' y0 D9 |4 F" B9 u* J ]
( H6 h2 M# i& }6 k9 ~

tu.done()

# d( T) B7 x# z K& p2 ]8 m% [
& L& H t: i; R3 S
* x* i7 M" F- w& v/ Y- W
p C# [8 O' b4 v4 S. ~& ~
, z% A4 w9 y+ @( b/ K. Q$ I
/ M6 J, K$ N, A9 o7 |- ~* q: W
举报/反馈
8 c% L( @* C' l; j
# m x2 j9 `: ]3 M4 b5 e% i( j2 V 5 `& Y7 A y/ s, G! p) U$ [4 c ' i; u6 `2 j4 i$ g2 `3 Z8 }8 a2 P( b3 @' B* D& d0 C3 x; v : a/ o, F2 ?7 _" Q; s
回复

举报 使用道具

相关帖子

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