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

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

[复制链接]
( @/ z9 @8 U: N- P( Z# B
. b+ x L% v* l: F' @0 M6 d& t
6 W- G5 C/ u% ?* Y
5 B; X0 o5 r4 o! q0 |6 `
01:39
8 p* m* ^% z) t/ c. b. m J5 e
$ s* ?; j( C0 M8 a& V/ B. o
, @2 X$ e5 |' r5 d2 q' c4 s
; r2 U- y' x. `2 z6 [
K t* z( e" E. h# h0 k# B' \8 z

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

4 D2 e6 r! ^4 _+ k4 w
( F7 x$ ^( S* z) Y+ H- Z$ e
5 P/ r# ^3 e1 f5 t8 T1 g6 U; |
用python画漂亮的类似七巧板图形
' I. }7 w$ p W) k U* y J; v
* |; o2 `1 n3 F" A8 D2 C/ R' R
, A; i, I C% {8 J4 S Y

import turtle as tu 调用turtle库

+ ]; h! y7 H, t6 E2 s9 V1 O1 ]
5 N# h6 c+ z `! J, f2 I1 |( l0 l
' Y: c# Y* l- m, o. T- n

import colorsys 调用颜色

: ]' Y Z" W* E
: O$ M( V9 U& O$ b
: |$ ~2 ^- Y! _- r& r( C7 Z) c' ^

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

) L9 Z; d+ w7 b8 v; R& J
( A2 _$ j9 N% Y/ G$ g
t3 R' D; g) R0 n6 k, d

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

) `1 @ `; O" S& P
; ]) _* s* `+ \# A- H: f9 U
$ w0 i% P6 F: B/ L) `: k' O! J

h=0.3 设置色相

3 G6 q5 Y+ N6 x: y
! b8 }8 F5 m8 p2 }, l8 P- y' |$ Q
5 M7 K" d& V5 g" D9 J

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

* x' r2 z- E9 j" d& z9 i
. t: z; f7 n) V3 |7 k' ^( ]: H2 ?& b
6 t7 \& @6 k+ K

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

% r7 \7 N Q+ S
. S/ D% B* d& X$ i& R! F. w
: D G8 C: ~ J% T# j

t.fillcolor(cl) 填充颜色

$ y. `3 H! ]* d1 _
4 Q* L6 K6 t9 g6 v
! g' S- e: Z& u# G

t.begin_fill() 开始填充

7 [4 l- m! g8 U6 j* } Z- ?
! P6 u- ~. u" J+ A0 n R! m7 [
- S( m( p. v6 s' Z( @7 B

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

% K, o3 t7 s0 W3 o" n1 U
: z m& \$ V$ m" s" t
2 l e2 L5 W* N; j9 o3 c

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

% }# A7 z! R' M+ S2 r9 z9 W! i
2 g% K; @$ R7 E# w+ g) v
0 Y1 u2 Y: \: S. M

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

* [6 `7 Z7 v: ]
2 i! t7 N% g! x" J. m
6 r2 }1 V3 F' f3 k* J' D. D5 a

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

. V* \: h" B5 L# n& G# p
& l t+ L. F' k4 ]. C
/ W0 E6 s) n9 w/ D/ @2 b

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

$ V" t8 c" o; B M* b) `
1 B1 e& S8 [$ M. f8 w
& ~) R2 ^. b. s7 K

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

0 j8 o2 h# s+ {! L/ n
* h6 X1 x" w# |# P/ ^; |
- f6 `! W8 N$ O0 ^$ C- s2 B h* r

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

# `; \' c* ~$ O# g
. W/ i$ B! x4 n7 g
; H7 @8 W7 f) S- i8 I! A9 T: r9 I( r

t.end_fill 结束填充

( B% C; R$ ^. ?
5 l7 S; g& h2 ?3 j b1 w" y
0 B9 K& [/ K5 z

t.fillcolor(c) 填充颜色

& |' q+ x1 `! E& I' r% V
, [& D* M6 ~% ~
8 |- T. L( O8 ~

t.begin_fill() 开始填充

: j) D- k# M. b$ K- W0 m
/ i$ A: ^. Z" A3 K% E( D3 d
0 M+ k4 C2 Y5 P' U' h5 ]

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

$ `+ |( ]) K: Y! c. Y' q
2 a* D& q- h) G" r# O0 {0 c
6 J& B& A4 c# c9 V

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

8 d' H: d4 ~ `% m. a S6 x
. v4 I3 ?3 y$ t5 C! E2 l
) e9 {$ g3 }; y: ~5 w& R

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

( ^/ a& n- j; U S
u2 i) ?& x4 v6 @2 H! W
7 C9 o1 m- z+ ]7 |: ?2 A

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

3 @& O7 X& W! r8 c# k4 B3 M5 ~
7 x" M; B3 { N9 c- V3 y4 z1 b
& C$ V+ p) h$ [4 }

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

2 L$ z6 R$ p. Z+ ?
5 u/ _3 }% Z9 P5 ^& s2 [
% D. x1 \; q8 b$ \5 m9 h: o

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

X* |: b$ k% R
# e6 C1 r4 g( c/ S* J
! r4 k }' I: E* e* O

t.end_fill() 结束填充

# J& C. a. g9 R7 G* i: ^
% p K, `0 Y; u0 r' M
% {+ O3 Y5 l. ]

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

7 Q5 v9 j2 `! I3 D5 s
( Z" W" }5 ]; t$ S, t, L
7 M. h6 r" d" { @) u- @% G4 ~0 `

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

0 p5 P, i7 p. r
% C5 M) I q7 m N
x+ g, j; l* I( _9 A; w

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

! `6 w; R4 L5 c5 ~ ?
8 F9 p4 m) G. w2 K
$ _% ?6 h; }& n8 X

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

! g5 R+ ^6 P7 s! D: x
. \7 M Q. C) O i/ X
! K$ }5 k F2 e) w' t5 A+ x- H6 x

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

' c i0 x8 v; e/ v( {! j
f2 l! [5 c; o
1 @0 N, Z" ]. ^/ u0 {9 I: u# E

h+=0.15 设置色相

* Q. d0 L% U1 `. ]
- T* B- V+ F9 ~; J) @) p
: P3 F1 C. p4 C" _7 F9 D' X

t.ht() 隐藏画图

# H5 s- t4 ~8 ?2 g6 I. y. q( _
~ f Y7 @( X& G$ i
+ U' N: V/ x3 F8 G

tu.done() 结束

3 {* P( ?: K% f6 c) m I, u2 N5 X1 c
$ V/ m. _( u' B- C+ \
- G( Z3 B8 H, _; J, p
! ~5 U' } O9 b4 j6 `) h1 D
! p2 G9 Y+ g0 p
c: D2 B4 z) y7 k

源码如下:

. q; ]- w. F1 u" R* A
- h/ f5 ^* u D3 P& y' [5 Y
. V# U- w+ x5 B' q7 s& V

import turtle as tu

7 w/ g$ S" G3 P2 P% w3 U
# O& f, g/ N# S0 Q/ D) a
$ s K- m7 e8 C W

import colorsys

1 b \* O( x3 I/ o& Y3 b
4 C) D2 d6 e9 P- E
& ~8 i0 }& {& m! h7 e8 h. {& _

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

* J9 F( c+ _. {, _8 O2 S( e
- U3 T8 y! f% y& x2 @- Z# ^
" T6 _+ {7 w, S. M3 |* X

t=tu.Turtle()

0 I* t, ] u$ R( d- G: n$ |
# A0 e; d S) G# z5 ~
0 M& Q+ j, d! a: x5 X* X

h=0.3

* A" D2 z% G% \) L
6 J6 S) c# k- M; ^
) X! x. C: L; Q. Z/ k. f$ c

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

% J0 L% r' U: U" s
* h6 M/ o7 T) D5 p( _3 ^
5 M: Z( Y. J4 K

t.seth(ang)

9 r# b. ?% R7 E x& b+ r* a) Z
9 n, `" Y" ]8 U
2 ~ X, Y+ b3 j" Y2 M. w0 f+ b& S

t.fillcolor(cl)

+ J0 v1 m- M, k1 A+ J, h1 C
! ^" X9 a6 F! c$ @6 v2 i' m
# k1 T: l9 z" l p$ k9 X3 @

t.begin_fill()

+ |0 v6 l& C: N; A" W, f
1 v6 r+ T; l& `2 a* F- [2 |
- R% H, N6 z+ M3 s) _

t.forward(len)

6 h$ a/ c; b r
8 h* ~( I% \$ r9 @
$ r7 m7 d) m: d1 ^6 b% C

t.seth(60+ang)

" o% s1 K0 }; J2 \# N8 C. Y
8 p+ P7 F1 P. S7 s% x; x- x
1 W& F8 q g8 \% n+ @, k

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

8 a( Q# r* n0 D7 |
5 v- j& m( T1 V
1 z4 c6 A4 J' n( ^5 O" i4 t: d

t.seth(150+ang)

. h, s4 _% T* h
/ D; ^5 }; F0 E. h3 r- w6 n
" ~; Z+ N( F7 r$ b/ ^

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

0 Z/ Q1 b6 @3 G+ R- b; x2 X, w
- L* Z8 N# b+ g" `1 p5 D. Q
. Y% Y2 R& Q, g- @

t.seth(210+ang)

6 @8 a7 j1 y2 A& N$ |- C L$ f$ G
! O" C5 O& S1 C' b7 |* Q p
5 {0 @, [$ l. h4 }, l

t.forward(len)

- ~: m J7 N; _: z% d* L- f* ~8 @* G0 v d
1 P4 i, d0 r) u! X7 W& ~, `
! z6 f9 V; ^8 ]# n5 r

t.end_fill

# r6 b/ \+ y+ {6 F. w$ p
& H' A! u8 e& o6 o3 u
( l/ ?5 d8 W3 \ j

t.fillcolor(c)

( ?* ` j$ C/ ^. N- F& D/ m
+ S$ \% y' j6 K, `, S( J
1 X. Y" Y, @5 c' l

t.begin_fill()

. o+ m" d2 D2 K* U' l5 f- r! j
$ r) C9 v: @, T
( a) a. {# e* T" r- F

t.seth(ang+0.01)

0 |1 T8 s2 l# R/ ^" s+ ~9 P
3 I& B/ W1 T b! J
# A7 ~1 |" g" c2 o( f. M

t.forward(len/2)

6 c8 J3 ]* l# U; U, q4 g7 N
5 A/ ^3 z f( s+ G3 ?9 x, ]
! t& Z: O: ?: K6 e# L7 ?

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

0 ~& _' w3 m% L' Y
0 V: S5 j$ E. _. c# B! \* C$ B
- i* Y& f( B2 q, y9 |3 O2 V

t.seth(30+ang)

1 h: R- U8 _8 V' J9 W& H/ u- s6 b
+ ?# a% r: K, G, f* T
' s. j# I4 G# E) Z* N! V

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

7 y) R9 |: z5 K5 F, ^: ]: p) f, M4 H% w
, K5 ]2 G X! }
3 F% [) l4 b8 C( z

t.forward(len/2)

7 a) X$ m- p, S( W! D5 W
2 F* s3 U7 t- c! w* [
. c, p" m. l2 r* [) a# l3 [0 V

t.end_fill()

; y7 x6 k$ f" i7 [4 K; C4 p
% I6 T9 u/ Y* j# d* V# D& P
& `' P* v3 A* w* M1 P% b

for i in range(12):

4 E. s4 i$ b- d8 `* ]
. o4 o3 F* {1 T! o2 d$ B( q% F9 m; |
. S& q2 K/ ^- ]$ D

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

; E6 W; |8 H' Y* ], u! }
7 a$ w6 B; J5 v" y. [$ Q
& M# ~1 p& r1 w: Z% z2 ~

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

& E; ~7 t+ Z' G. z
' u1 O3 d& U3 }. q! q
/ }0 j( G% I2 _3 s ]

t.pencolor(c)

0 W% L9 y! I: L7 B
/ l# T7 K5 [* w# z# G. [
8 [) v+ e- z& h

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

. C! x. b" M6 c
: }# ^# m; N3 r! D u
. k( M% f; f& ?0 q# G' n) r

h+=0.15

6 S! u9 n) ?7 }* ~) R0 Z& {. h
8 Y9 h0 c: L! P# Q! |$ j! q
+ W" q0 Y1 j) d% z8 ?: D4 _

t.ht()

' `* e; L o6 }. A
$ M6 x( u O5 O% T0 w4 ]9 f
' ^0 [3 r9 `7 p

tu.done()

' A: U; U9 i6 Y4 u( D" c
+ r |9 T: @1 d* Q. u9 K) g5 {* U
4 R9 w( ]7 T/ q3 C; s! }
! U9 P+ x7 i) S* [( I9 R& B& z4 _
: E% C/ |! L: B) y$ q6 ~
' o' ]' E! f& p. V+ c& S
举报/反馈
, t2 ~% _3 Z! v* Q0 J3 B& ?( H
& N5 r5 Z# @; T$ L% K 7 L) S; `# B3 h ( h0 i+ y( Q: s2 }9 p8 ?7 u % r6 Q' ^) t5 m" n. @2 R ( B3 N: ?- Y/ E5 n1 k" O
回复

举报 使用道具

相关帖子

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