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

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

[复制链接]
2 Z* ]5 \- N8 M' L
1 d' l4 x3 u( C. q" E Z# {
8 n( Q' u- T; q8 w0 \: v3 ?; f" \
( ?! A5 O$ b2 G
01:39
4 W3 A( S7 J& q5 b# {7 U
8 f% J3 s3 F" B6 p9 \
; U j7 r! B% X7 u0 F
- A7 V& N' X3 Q$ n: u9 H
5 B2 Z9 R- Z- c' K) Q# U3 v

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

, u# a, P$ o: r3 S8 v
; E4 j% o" {( a8 K4 P" v$ h
6 v" J$ |! b" y+ ^% e$ D" L$ l
用python画漂亮的类似七巧板图形
" D: l b2 Q$ K. S
0 h p- d7 U2 @ _$ c9 `; M
# C& t0 u+ ~/ f4 J. Z D

import turtle as tu 调用turtle库

6 N' {1 ^ g2 p( F
0 _7 B& X) r: l5 j, |2 [8 t
( S) x. h2 P) H

import colorsys 调用颜色

8 Y% K, Z/ g* ?7 E; c; z5 i$ g
0 J: B# j2 z/ J5 T+ \ o8 J/ c
* \* ~" g3 I4 G" s$ w& U

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

4 B; C: M/ Y7 V0 o4 ?
$ o8 f" h8 B, @. ~! Y
5 r8 L; {: D2 c1 J+ l6 }6 \

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

0 v: V2 U I1 u4 q
1 s% y' L, `; F- S& I/ i# z# y
/ V* h0 L& E/ L. a

h=0.3 设置色相

2 y8 u/ \' c2 e
- ~+ R, _* U, Y2 ^9 @, E
$ S6 W, y" T0 [

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

0 m' C+ q8 E! S, D! g$ P- a
$ l& Z0 G2 U1 T2 E1 h$ |0 i
4 c, `* l! j3 c- P' [; }

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

4 l% h# C( r- @3 ~( q6 K
: Z+ S. j4 H4 p! d* R
6 K2 Q3 u6 o6 F# h J

t.fillcolor(cl) 填充颜色

0 I+ A) n7 a5 F4 @1 N% J
& x9 v5 Z5 L+ [) x
; a- O1 q3 \$ \9 D

t.begin_fill() 开始填充

7 [( k! U H; n6 [
4 |% k* n T' U3 ^8 X
# ?1 E+ p! `2 t9 z. Q

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

8 M; v' r! ~% j: ^6 i2 F' s6 Y3 w
9 a0 k" H! Q- b
) F- Y7 i# o. U

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

/ f f, w0 k1 W9 E, h: T$ n
3 k, ~ ^6 _! A2 g% ~/ y
* H; G& L% l& N! a+ |" x2 Q

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

/ ?2 s$ F, V3 E1 ^% a
8 Y' G, M5 H5 ~# J8 _
% q& b! q/ ]1 H5 w a" d/ A3 I

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

3 O) }. Z8 u4 s' V
/ U$ d+ B6 Y: h! r) Z% R+ S
" [+ A |! Z8 f

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

' Z; Y/ S, t( F6 g+ D& m) z
}. U, F* N$ m- \4 V" w
" j+ a/ F% ^6 p& O. X- O' i: O1 X, g

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

& a7 }8 i5 i9 V4 x$ n8 j8 ^/ i
P0 ]9 I6 e4 G/ H9 h
, ]7 E3 i6 V4 B

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

0 y" O8 s6 v6 r$ Y2 _1 E3 ~
' ?- e, w0 v- d4 q3 U! K* t
; N3 Z# a! E4 t0 m' R

t.end_fill 结束填充

0 L. T! i+ S5 j3 i
' g$ z- b; ?1 J
" |8 [; ]3 W3 m% w3 a( d( r

t.fillcolor(c) 填充颜色

2 T( x9 J/ _! A: Z
& `2 P) {& j1 ^
( S% b+ v$ }( [+ I5 b% ]8 K7 U" \6 h

t.begin_fill() 开始填充

, D/ j3 ?5 v: w* U3 ^0 N" l0 ~
7 X* g7 U& E& m1 ^
9 Z: t2 Q0 P5 h/ u- d0 i

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

+ m* x0 z8 D/ c# R
, M$ y- ?( V, D. g" K
1 v$ {: L, M5 v0 u2 A8 V! G+ k0 h

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

: U5 n; |+ ?* {2 K& N6 b
g3 F H: L& Q% _+ z4 W
7 f9 b3 g0 Y% M, a, [

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

% \7 n0 c! F7 s, ?7 v. ?& L
0 h) j2 W1 H. P6 P3 N$ ]; E* U. S
% a+ X2 v, v. c$ X0 @

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

6 Y% q5 r; b3 @9 H
3 z8 U0 H% N W- N! p0 Z
5 m ~& W" [# |8 W

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

0 n7 b1 H0 q/ R
* u; f7 o2 m8 x+ y* o) p
( k6 K1 c$ | Y

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

# h2 Z1 T1 Q! q7 W
6 E- x: H1 { i; q% N) e
& c: c( J A: q: e) A) V

t.end_fill() 结束填充

9 r; r: V/ p4 f7 L
9 j7 u$ D! F6 k- l
# N2 s/ Q9 i" E, h

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

, D8 W9 u% q/ |" H$ }4 o) B
6 k8 r1 N" {; t! k1 N8 \, {- b
6 X/ P5 \6 ], d: X1 K

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

" C) p" m( f m; \1 q
' Z" l" z+ L# l9 {; U0 l( G
' I R# C/ g) i

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

+ l/ N9 e% ^' h- K
- z( J$ ?1 |( o- K9 J# A
( S3 m6 t7 m d$ Z

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

# U2 E' R. A( U8 N3 K
; z3 o( \: W8 q, T# e$ o6 q6 O" D
. M" e9 t2 ^" f

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

+ H3 F- {. d8 P7 k7 y7 t
* _( _5 S$ v' ?, Q$ M
' W' g/ v7 e2 p9 t- c- C" {; S

h+=0.15 设置色相

9 J) C1 j) Q3 E# c* L: L9 Z
! p5 ~' a( S. \) l
$ ?* u4 g4 G0 H5 @

t.ht() 隐藏画图

8 D7 C* ?! e( I1 U1 L
! T! e/ f: O1 \
1 j8 A6 j: m! p7 }/ p" A4 u

tu.done() 结束

* y) x9 |& {+ Y( x5 j
/ C) ^. ]2 ~ f3 J4 y
$ e2 B5 r+ `! P& ]
3 q% m1 X: `% f' a4 \4 d& Y6 g
( O/ D% y9 f. Q6 B
2 q; Z. l7 D0 q

源码如下:

5 J* T! H( A( K/ B, _4 t
7 {8 Q0 I+ z0 D- P/ d' V ~
# N# v+ } K$ N) X) M5 O

import turtle as tu

$ r- F ~: H f) t V
7 S ^9 h/ S6 B7 c
3 m% T# i- m2 ~1 `

import colorsys

; h; E6 W% R! H9 e B" {+ c& ^
; S8 y0 o1 y. p4 [5 Z0 q# ]' Y( J
7 G* q5 ^1 V8 M

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

+ v, g$ E, B& e1 `9 P; {
* W7 T4 `. O l+ C6 J" j/ N0 N
3 s, u/ w4 U* G @( r: z

t=tu.Turtle()

3 C6 J2 k% T" [
# s G( } J) Q7 D. x7 J
- I9 N2 N& |, C6 p) R* j, b0 c. G- g, ]

h=0.3

$ q4 d3 t: h: y4 q: W+ ^
) d" c& C* C4 F2 D$ m
/ a: L E) c6 D Y

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

- Z, y2 M1 q: |/ t3 |) p1 H- N" p
: C1 [+ ?, A8 J4 a9 Y
! `" e. U% u5 Y* S5 E

t.seth(ang)

7 q" H- |; }0 G9 Y% z
' A5 d8 h6 t( f$ I( \" i' S5 q" c
1 S+ }" [. B% m% Q+ u

t.fillcolor(cl)

4 G* c. W: P/ _. c
8 N- ]- G& c/ K% E9 V7 P R% {# i
& F! L% C& z& ]7 j# y# b

t.begin_fill()

$ b0 W, C* C: T% _/ `* {, ~
! ^6 c ^" k$ b0 z5 P( Y# F9 p9 B' Q
% |" P- E9 y/ l: q% C

t.forward(len)

- i9 p" c; Y8 ]8 C: q- m! I
' f& y. C7 z( I2 B6 C0 ^1 l5 V
5 l$ R& Y% N( {4 T8 l3 v

t.seth(60+ang)

) [2 a9 E0 @: A. l; L
5 d3 C4 h9 C6 L0 D
: ]& x/ Z, n3 ?) f2 F8 }7 ]+ b

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

$ M- {5 z0 G2 l, ^3 Y2 i' v r$ ?3 a
8 I0 r5 h( Z# U6 X! Z
; v$ N2 r1 W" M+ H2 f5 R+ o

t.seth(150+ang)

9 f* m, |" R' {* y8 V
* C7 A! e. [0 g! y% V& k) M
0 q* h$ \. Q6 P9 X

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

Y' n, p- z, \3 L
+ B: ^2 \& K3 @
3 b) R3 s# P5 X/ j0 [. Z- N3 S8 O( Y

t.seth(210+ang)

- S0 Y4 b8 k7 P
2 Z( B, d9 E' W0 a
: r' A) l: H* V$ D, F8 ^

t.forward(len)

% m- X* R7 [. g5 {, t5 ]! n& B
+ e J7 X; v/ }5 O5 [1 ]$ o
8 |/ R/ }" j6 y8 }6 Y. o( H& f2 J1 u6 T9 }

t.end_fill

. U) N. M- b( y' f: _: t
* v! b) P: K" ]7 K) E
+ Q# b7 p4 z" T7 o7 C& F7 A. E

t.fillcolor(c)

/ g. M: x; u- o$ i
4 ^; X V5 o1 \; b( ^2 A7 ]
3 Q% K' T$ q; ^4 D& Z3 _8 t

t.begin_fill()

# X. y' y4 W" U% v6 L! a
, \- q& q2 v0 ^
. u6 k! Q1 ?, v" u& ]

t.seth(ang+0.01)

2 T+ o4 P! ^ q6 V0 Y
- W1 u! [( M( F, ^* ]/ q; ?, R
0 X) o3 \$ m8 T; A( S

t.forward(len/2)

$ J4 J2 v( e0 C1 f0 }% |
3 ]; f1 J) t! i+ }- i
0 T% H& E- m: G# l

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

8 f6 L s2 r( |. ]* S+ u3 {, U3 U
6 H3 _, V, T2 n. s: ]7 Q; z7 f
% g. ]0 Q0 x8 k F+ Z0 Q5 P9 z

t.seth(30+ang)

y* r3 W! w/ `2 v0 |
1 [$ Y: o7 P% S' F
$ p) R( I( M' c( L- e$ d/ X

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

) |9 P! y; l5 Q1 g/ E
; f# `& _: \- Z9 _4 y3 w/ o
, N9 ^* Q% \. F4 Q$ l

t.forward(len/2)

: n: H. R, F+ I" b6 x P5 C& K/ p1 G8 v
& I+ s# l3 s5 l, x% C2 v
# R5 g0 h4 ]5 I+ G: p* H2 s

t.end_fill()

! _+ |. L2 b, x% u& l
# N9 s" T, W3 J& a E; ~0 ]
, P4 t. t2 _' H5 Y0 l

for i in range(12):

! U2 h! T( Z: p2 R" X$ {* |" l
! r" q4 I/ R$ @8 ?
& B; o$ Y3 I: @

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

" d" ]% ?( [# w! ?
2 M6 q9 h2 O ^) C
( \ t+ c( r/ r9 ]( s- \8 y

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

# Q& b! q' Y/ g' g( b7 |7 Z0 K
* `0 {# [7 n6 k/ y }0 o, M
) G/ L, `& g6 V" G8 j

t.pencolor(c)

* }6 S! E" \: D
. l3 r! P* o3 o- l" I
7 o- f* M6 D6 N5 b; t& Q

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

3 ~# q+ \% q1 Z* ^; H V
0 l8 S5 F" K! o# _
! c/ l* \% T( G+ u

h+=0.15

7 j& L. m" {: j2 z
' q/ a: K/ z1 f2 M. I U
" x' u/ X7 ]1 T7 P+ w4 R) h! N

t.ht()

' L5 ?+ {9 r- I# V& ?
6 {$ U& G) Q+ l. j+ `/ Q6 Z
: ?8 [7 u `4 k2 u: ]8 X% C

tu.done()

, q, k" \1 p3 ]- Y& k7 N; u$ }. i1 I$ u
- Q( y5 i$ f" F+ a! ?" K& r
. u$ K+ {0 }1 K" ?6 J7 E" @
: o7 g- V9 }% U2 c' G
! L/ i, T$ ~) o
, X* Z: T1 T' r/ d
举报/反馈
" f* l' }% N* ~+ R- C9 C3 N. h: B( w
% D: r4 W% J5 Y% o5 m% P7 |6 g2 a( l; S2 L8 {$ R9 x, [: j ) o( w3 k4 n5 N3 o' B& y2 I) C) ]: u, C2 E , ^% D5 @& X' J7 [! ` J
回复

举报 使用道具

相关帖子

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