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

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

[复制链接]
, P. a/ @% h6 k, b. e
4 O9 p K7 r( H7 C- a3 S. W
$ o: T! g( \ V6 K q' |
. g4 Y7 t4 _9 P2 H: } h
01:39
8 a9 i+ T7 i/ N# {
1 i3 R Z9 F6 L _( t
. S/ C. V3 x1 A# Z0 {+ w" r
: k% U" U- s2 l1 s8 ?$ i# `$ q
( t$ G5 \; B7 `- a; |( A0 u

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

' Q! L9 ]0 Q1 @3 R
7 t o2 L( `! T0 ]# z) X$ {
+ i+ {2 h3 R4 ]8 `/ |5 e
用python画漂亮的类似七巧板图形
; }6 Q9 R1 p8 {8 ~$ O3 R
3 V. s7 P) S; M* r. t( c
9 y3 W/ ]9 E: H7 t

import turtle as tu 调用turtle库

2 A' p8 @5 j( N# m5 Z
& T3 D( q V0 M# `5 B1 v0 |5 R! Y
8 J( }" V' y! \9 g& l

import colorsys 调用颜色

% Y8 T! n9 y' O
/ B$ v5 d. ^# I" H4 h3 `" M
% @: M1 q% `1 h, Q/ ]0 e

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

4 w% Q9 S5 B) e' s8 o
) G, C: r, G% r! B; L& W
$ x5 } @- ]. R( e* g8 K( u3 d

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

" o* C' Q8 C, p3 z- K
# h! B5 _' F0 |4 O9 T! e. g
3 ]5 v7 _0 `- ~7 ^/ j5 P

h=0.3 设置色相

! u$ m0 h1 c& u1 y
3 @' E @" m1 o/ R# z
5 z. Y% Q L% O/ V6 h5 G) o3 y2 u8 f

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

! b/ Y D$ V( r/ D. t% I0 z# u) n
7 V4 }, w. n9 I3 o8 M; a: E
$ @+ x* C; R: d+ f0 v* u

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

( w4 Z+ Q; U! _- m6 z) y$ ^
6 W8 W7 s5 k) d
7 X6 U- d* }# x

t.fillcolor(cl) 填充颜色

8 w2 C, e! d1 Y4 J; S' z
- t9 ^# O* I0 i
4 Y1 N, z" E" q( Q$ N' U" c

t.begin_fill() 开始填充

7 S. d. T: ^8 H- A2 t* }/ {
) K, Z3 a+ {' r1 t
4 a. N' D& d8 U& Z8 }2 `

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

! z( A1 X# }! ^( S
2 l) M2 i R1 S* `! G
: h+ @$ v8 p }3 l$ V# S: \ S

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

9 w" E( ~5 J r
# h* d; K% b3 z0 p3 O
6 O0 g/ z% Z c$ Q+ l

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

8 K0 {4 a+ l; O# k1 h% Y
. @1 s; ?; k- m$ b4 n
# H8 i3 v: K( y: K, b# \

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

! o' `% D8 q) K N% B$ E7 g" z8 r
& R" j* i) K& R8 A3 d8 Z
3 K9 T$ z4 N( |! n' [

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

- m" `! c. M& g
7 Z* }7 Z5 R5 U1 b) ?7 s) D
! p- a+ h# O/ T1 G

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

0 Z% H/ \- F' ] F; b6 w3 a8 T: g% o8 v
" q8 |. D* D: {
% O9 G* I. o' U1 l' z1 z, n

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

( l* N) S& E% l4 ?( K
" z f# a1 f- A9 h$ B
6 r, ^' Z8 K3 M$ p$ d* F

t.end_fill 结束填充

t9 G+ z* I0 }4 @/ \, y" m% r0 |
$ ]+ s' V* S" Q# u% {' C( ?$ J
% G: ~. ?! \( m- j

t.fillcolor(c) 填充颜色

6 i0 _0 a2 N% \; |, F) X
- k( K y3 ?$ {/ a
: ]/ N) R V5 B

t.begin_fill() 开始填充

5 W" B6 d% b! X
7 \7 p, n( L1 K6 [
" ?; \9 n2 n& ~! E' x; Y

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

7 y- M m" q& @7 W1 f2 V W. l
" ~: `6 i! d }! M, x7 Q' e
2 Z4 h# Z+ ^6 U9 Q9 a0 `* p

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

3 X& s; ], Z3 n
* k6 L& d& k3 b; r5 @
9 o/ W/ A+ Q7 f& H) G1 H4 N

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

* e X3 h/ W$ P1 d( o$ }6 _7 _
. {) z4 Q1 h& R' c
9 K B$ S5 a; M1 }7 }1 v% n. k

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

: Q1 t7 J* K. O/ W3 l. V
" t: L' _- x& `. J( Z$ m
9 U( { d- f. z+ z

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

$ W, r7 R, `( R+ H3 [3 {/ A
# W9 S$ Y2 {/ q7 ]' Z
% u% V6 f) J5 x# u6 D5 Q

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

3 x, ?' G6 g' W" y) |
/ Z! q+ {4 \% T6 h- |& g! O
0 t0 V/ d6 D/ N" Z' \

t.end_fill() 结束填充

( N, Q9 p! n! h7 ]
' u7 d$ n% w$ ?0 ]$ _# l
' y: J* f. L1 T% Q6 y# X. Y

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

( l2 [' u# O3 @1 U. n
8 c, o) D4 u6 K( V
u! \6 M ?& V% I( `

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

3 q( T5 X, V* h& g4 S. r, {0 t
) \# T' N% S( t7 x$ ?; m
+ ~3 o) P6 f1 b

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

/ h& _, Q9 e+ E& a% Y- o ?- i8 I/ w
( a3 _1 _1 D5 @# L( F) \' m
[* i% o3 ?6 Q+ ~" L

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

1 F( I0 a2 `! u) d, A' n
8 d0 {2 d& l+ K2 y# q1 v$ O3 f3 F
& Q1 [8 S4 \6 Q! Z

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

8 z" F* C! y& L
& P' }% L$ } d) ]$ f
* e- p* W' {- S* l

h+=0.15 设置色相

1 I& Z( f- \7 s$ H/ J( c
' P, d% |% d, k9 D+ I/ I
; e% s( d* ]: V8 q3 w8 r

t.ht() 隐藏画图

* w/ [1 ~ c) \$ u
8 Q* ?5 I) C* _- P- P$ H4 m
* _0 U9 z* r b( X( B# Q

tu.done() 结束

0 A7 H' D( S& }/ d4 |8 l! ]
+ h: U! d6 b# j" K
3 v# u/ g: I/ z2 Y/ Z& }* Q
+ l! D- X6 a: _' g: I" l
( I0 X3 M6 H* Q. i; a% }" C) P, U
6 S) Z6 w$ |, @2 X. j2 }2 w* m

源码如下:

/ a' _" N( \- W0 d8 j* J) h' C
) p- I( P- _3 M% J: o: v! k5 F! X y
2 d; h- j2 F" z. r, v/ r: K

import turtle as tu

$ {1 m7 _" e) P
* b3 A2 P1 v9 u1 U* s9 e
6 o! K1 _0 D1 b5 U3 b

import colorsys

+ _5 C* y- j3 B! L0 A
& G- S, P: y- d
4 q1 I. h* {1 T5 p

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

- t( ~' e( ] J, L3 Q
3 r( E! W, p! n' ~9 ^1 i
+ Q* H# t8 ~; Z K0 o

t=tu.Turtle()

0 Q, t3 }5 g6 Z
. z6 {' t; C( X5 I/ m8 M; k) ^- e3 A
+ t# p$ j3 @* k# N

h=0.3

( v4 j$ x) @ a! `
7 G1 q8 f8 n! o/ \8 Z/ i3 J* t
d# K, t& | \; d7 U1 l7 Q

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

, }# O6 N6 p$ f& R8 T
, ~, T: T- K9 T: b' }
3 j3 I& j, {2 W3 N, @8 y4 s

t.seth(ang)

7 O5 ` [; \0 @6 T& |
( I: y# k# K3 q; f1 y2 V
: q* X1 f2 Q P+ B% d8 T) K

t.fillcolor(cl)

# X- f+ ]) ~3 P. v7 J7 q
# K# d. x2 {1 [$ S$ Y
: @0 [* x7 M8 Y9 g* b) |

t.begin_fill()

& u- Q% H; }7 Z
0 ` o0 t$ l. y, ?6 D3 U
. d; t3 } H) n h' H

t.forward(len)

$ y$ R- a. [* E
3 C* H& A9 Q5 V# J. ]7 O
; D7 g& A2 ^! ], Z( o' G% F& H& F

t.seth(60+ang)

/ e7 r5 O9 F$ }% R% `$ T" a' E
& _1 J) P( j% q' ?& Z4 q
" l; d& \7 E7 G$ |) n

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

" {) B3 I1 b3 I2 x1 u
5 y' q. F2 M. Y/ T& L2 o/ `) o, m
; m5 F* N- ~6 g! }0 N% D+ p

t.seth(150+ang)

- h" h2 i) ~, G( E& }$ h
. ~ Y+ s# @/ x" I
2 ` `% t9 J' }- j S, f

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

' I3 @3 n2 Y: b) a1 y( ~5 m
8 y2 F2 p2 k) i
( z) a6 n, {" P8 i: u' r

t.seth(210+ang)

; _9 U2 ^( G7 s; j5 J
9 l( ~" V0 N5 r9 `# P+ `
; ~0 F$ F$ q$ l

t.forward(len)

" f2 B3 ^" Z. G) P m6 d3 h6 W
; i: o; ~* s, o7 C: ^+ k( s5 X
6 q# Y' u' k# h5 R5 K2 f( ?6 f, O3 R

t.end_fill

/ g- G2 x+ U* f x0 T& C8 P! S8 _( p
f5 j! g+ v; t& ?$ J6 Q5 K( F
6 i6 K3 [7 f+ O, X

t.fillcolor(c)

+ I- D/ [0 V/ D" ~
+ P! `$ w4 U W- G1 z G, h
( }3 o& {+ I$ a0 n# f; A( i2 R

t.begin_fill()

' t5 V% \! A6 q) b8 x+ ~6 i& A
1 j. v; f3 v, ?/ U' ?' k0 c( ?
: b1 m6 K. Q' @6 e0 m

t.seth(ang+0.01)

4 A6 U+ N" |$ a( p! N9 U& b' P
: p, x' z! a" Q2 n" m, y" @5 V% V* m9 `
# m4 n- K0 V; @/ z3 k

t.forward(len/2)

2 Q2 ]2 j/ U3 W; D6 q
- F9 N: O3 F. d% |
/ s7 j7 a" a! @' t, {; `, R

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

4 g. ~, W2 Z6 U$ Z0 Q7 q
3 \; S% A9 r$ k D8 @: i _
5 F# ^" z$ `+ C9 l1 C0 A4 C% m t

t.seth(30+ang)

0 K0 x5 i8 K6 V4 L) I
9 R3 M, D1 Y0 g! w, g% S
3 _, K3 V. ~' \

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

- l5 h/ w8 u5 Y) u! c' r
* g' W4 ~3 c" r' u
: x- R# \4 J# P, Y3 K

t.forward(len/2)

`4 l& k( Z7 u& @/ k8 j
A9 Q5 B1 d/ Y6 u) R/ O
# q5 K4 A4 M6 B/ P

t.end_fill()

X2 P0 R3 Q: P1 d4 g3 q( l
; v C! l; a4 C0 S- Z5 D
5 p4 y, E$ z5 W" c" X% V( w

for i in range(12):

6 w( M! [/ B8 O
3 `' I7 E: L) @+ A
6 g: H0 l6 |% r6 {6 E8 v: }; Q1 U

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

8 e# j" J! {9 m/ E* [& ?4 o# Y
5 J3 B, p y2 l2 k( ^) c* j+ i% a, J
% X& k& \# M1 W7 N: h }) ]. m

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

" D2 \/ I0 l8 q' r+ W
2 Z- ]+ v% F4 n6 R
# h3 ~3 y6 ^5 ]9 s& u% o- T7 ?

t.pencolor(c)

Z# D1 `2 k4 C+ A& s% }, G( K
0 O5 |3 v, Y- B0 V' [ z. L2 U8 g! s
; |9 k) _4 n0 t8 f( P- h1 m2 ~& \

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

: B8 D% Q0 A5 j; A9 B
2 v, d7 a2 h& Y D6 U
( x, I- J9 ?' U* a: J

h+=0.15

7 v% u' E% b/ N9 v8 G
* }* S% \, u |! @
$ t" V) I1 K2 e3 |

t.ht()

+ T# x8 x. t3 F! U% I
4 W" c. y! S& |
$ I7 r1 w& ^0 P6 ~ v8 E

tu.done()

' t3 R& B( t- w
! A! U+ b% [5 y
' }, @2 v% j' _9 T! P) O
. C" \* E% Y8 P0 R( j
- h3 }" }' N1 v
; R! X- W$ D$ Y" ~) k
举报/反馈
& `& |/ W, S% |/ n- U
) G4 n; i4 y9 b1 O5 ~9 ]0 a , h+ e; l4 Q3 n5 Z$ D/ w7 I ' f$ v7 D6 H: k- T( | * L; l2 G$ o8 j' g3 ]; O! U7 A/ ]! t# l: q
回复

举报 使用道具

相关帖子

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