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

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

[复制链接]
3 l4 h2 W1 L) {' E
0 L: z$ S7 \$ i- q" M5 |
9 f: Z/ b# [4 \2 I1 @4 }
- s+ x7 b# r$ \
01:39
- g4 u4 M2 T) M2 T% F' {
3 B+ y' {9 W% i; ~& w7 u1 ?. D1 K
: N" e+ o; P/ ]
+ K0 P4 P q# K0 w
, i4 O7 i9 ]* @" r: |2 D0 f

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

% D4 j. u5 T, V9 {. [
v7 X3 {( x* r3 c: Y: ^
( l2 i, ]: Y: s$ H( K
用python画漂亮的类似七巧板图形
; a7 q7 h: L, \3 z7 r6 h0 f# B4 q
/ ~* U$ B* D: ]7 m5 c6 y3 s2 W. j
3 N( N8 i6 V8 V1 V

import turtle as tu 调用turtle库

2 \( ^6 r2 e9 u `9 g/ @
, K5 P/ F) F+ q
3 @/ s9 |, m' R; N' r

import colorsys 调用颜色

! B+ f+ A7 \* Z# r
( I2 I( o; z: ^. ?" n7 ^
8 H, R! O5 ~% _; n0 _" w

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

6 x- f2 {6 n, v3 O
" B }3 S ~. Z" m
, Q3 N- K0 k# G. l$ P" x

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

9 J! Z ]# @* u' @. K/ x
O. k/ L6 ~/ f& t! i% s* E
0 s- {3 q. ^3 c3 t/ w4 Q- j( ~

h=0.3 设置色相

. r# R: |9 u, N4 ^4 H! w$ g
6 J, X) n C9 z/ T, `8 p
, F0 J0 `$ z" V1 s% h4 t; @3 ]5 Z! i3 U

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

" k" [5 j, E! v+ H
+ w1 o: t/ [: m+ ^ E: |& z2 c
4 e& ?- n9 E" ^4 L& w: F6 M

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

8 k# l- ^5 m# s
$ w# g% g3 }+ A# x9 F7 l" M+ g0 `
9 d% w- I" T+ p) c. B" ~* [/ k5 Z

t.fillcolor(cl) 填充颜色

) K% U3 b5 f" U
- s9 P! y6 a4 u& h4 h; v! x- q
7 A% p) T5 S- k7 T

t.begin_fill() 开始填充

, }' G' q; i; ~" d# X8 I
2 E2 p! D; j* g1 U: {; A# b
- W. \& c; t3 Z& c2 v) C7 ]

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

0 w S2 r3 r/ s4 A7 r
/ a1 ^/ H% ]2 e3 j* D
/ r+ }5 e: ]+ }

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

, d. Y0 @4 g; _$ ^3 j- Z; W7 F5 g
. N3 C& p- t) V" _, \" o% p
' f o1 A5 r& |1 U

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

) s6 r5 r1 p; i2 I$ ?) ] a. w
% a) n; L+ W k. _
6 |! R: W2 ~+ P& p) i9 F( g6 x3 \

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

+ I/ i+ b& l! X' V5 s
" _7 p7 N+ n+ j- R: }
4 ^) m% L$ h" l; _/ R

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

" N9 H8 f" M; P" k+ z
5 E# G' K- k; L
/ H+ G% G y( S2 m. @

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

) H5 m* r- ~7 F& z2 N- C9 z
1 X& f! L) }) z, P& l: T
" f! \* P% N: y( \6 O; o0 I

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

# l9 n. S9 t0 Z+ Q9 O* a" O8 v
, S' S# e) |* n" s' s
# K- K2 u7 w9 r

t.end_fill 结束填充

- F0 W% B% v" T, H0 r# L
9 t2 d, X7 h5 J1 h
1 s G" u! J( a

t.fillcolor(c) 填充颜色

4 G, l( m8 \* Z
) H! e8 m0 D6 X8 B$ J* `$ b4 ?5 U
/ c, K* f2 J, s: T8 s

t.begin_fill() 开始填充

$ T9 ^6 M. r: ?: J
3 L) H* q2 K7 Y: p
( @/ j7 i) Y, D8 X9 I! {8 ~

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

: H5 ]" G4 K$ ?
4 w- M/ l+ L# W# N+ a! W9 H0 g
6 d2 L2 I6 p/ x1 c- x2 u

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

- w k3 v2 T7 O
- m0 l; W( y/ T
: y4 h; N$ N0 T# q3 h6 L% L1 m* k" x

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

/ @9 ]! I9 ^; `
1 i( y2 T; L# [' t5 m9 y
/ w& @( g3 [2 C: Q7 f, ]

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

" i J' {5 G0 t- B
1 T0 G9 p: l& O8 ?' E; M9 x
6 V2 `2 Y/ c3 u- z- E5 h8 E |) z2 A6 g

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

, s$ L7 {! e. m( Z% z5 }& m
9 c2 q; K/ K: h6 p( y e( S( R
* R5 ^1 y9 g6 j6 q2 h+ m

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

8 G' g& U/ H" H# X5 d+ f/ x; A
+ F9 ^. [. n5 d5 h5 n/ R: A( \
9 J9 P" R: H+ p, ^+ B; N2 v

t.end_fill() 结束填充

3 Y4 K- c6 m8 J1 K# L
: x9 q m! D. f0 E- f
2 P* s( {+ V6 u5 N7 T1 i9 [0 g

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

1 K4 G" v. s! I, S' Q
/ V! l! g8 x# h7 e) f" U( s1 T: ~
$ f {! v k7 Y( J+ U. Z1 }

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

7 n3 u& v1 L0 f4 D* l' \
( k# Q% t( j0 p1 i- f) y1 n
' ]8 L$ s* W2 {2 i' {5 t

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

4 p" s( m- v# n+ ]# B
7 c4 Z- a0 y- j. S2 B
7 ~* I" I! Y- z6 U

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

( c, n, d$ B+ Z" w' Q9 @7 l
* `% Z) f8 J( \: V5 @" ?0 {) a
& A8 X/ G; l, d8 S5 i

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

, O; Y& s* Z8 i1 E1 w
: F0 z3 y7 K! V4 d- W
" u8 Q8 y0 a9 ?( Y. C) Y; Q, F/ |

h+=0.15 设置色相

! Y( h* D5 v" j7 Y
% E4 [2 S( E4 o; `+ X7 u
% x8 E! G5 m% p

t.ht() 隐藏画图

$ m, u4 B9 y' S
E8 U& J% P& T& s; O5 n' u X" h
4 A7 J# k( |3 e$ [% [

tu.done() 结束

8 I- D P, i( \' z
7 R2 ], G L% `+ c/ l
3 L2 M) l8 V4 }4 `$ h/ O6 a% r
3 G. g/ U# H7 u5 B: u9 r
2 O3 j" K, a* q3 ~4 }
( x" y# {7 w! N. z, z- e

源码如下:

* h. J( Q5 G) t+ \
3 r* K9 G3 r2 c
' ]. g+ X) k* i" b1 O

import turtle as tu

2 h/ E; i o6 ^' e8 S7 A v7 |3 e# F
7 t9 }& j0 ]) ?2 |( P: ~
; _+ {0 b$ @. W. _3 D5 M/ W( O3 O

import colorsys

: E1 |; `1 u& Z+ t0 z, |
' }$ C: r5 H+ J9 f& N# y
/ W/ a" ~* f2 m4 U3 M4 o

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

- L: Z* H# ^/ K) S
0 O( Y& q. w& E( t
8 x/ a# t: R3 [( J) ?$ q) D/ d

t=tu.Turtle()

3 ~' z: A3 [% y" ^4 @9 f, X9 B
! f4 C% _" g) g+ L
3 H3 v3 T/ `! E0 w- u% g* s

h=0.3

$ t3 k' c/ A$ p
2 R' c! E( L- @: n8 }
' Y7 |) E, `% q& [. @# q2 x! Y) Y% b9 y

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

) d) i, C6 [2 I, U3 D
( r" V0 q) E8 c1 Z5 |* U; I
8 ~4 A- P+ F5 M7 C! j

t.seth(ang)

{* D" E) D$ K, C
$ \" V2 j' T5 ?
0 p2 l% r* z l: w2 ^" A. Y

t.fillcolor(cl)

' y9 H S) |; [/ T+ N
& i- c5 p- W8 t
6 h9 E p8 T4 w- V6 V

t.begin_fill()

9 o& s' p, ~( [, i- b
- q/ R/ `: h2 s5 X6 |1 E
5 |. k: x/ @1 F C' w

t.forward(len)

6 q+ S( ~9 } h4 h
; x% I# {: s% t$ q- o9 w- r
' w( {2 D9 Z9 s2 o* h

t.seth(60+ang)

. R5 f# r+ y9 Q j c% x
3 z! ~7 _$ J9 P5 z$ d5 s" n" [
( J, R8 K5 W9 G* ?& v# K6 h$ m7 ~

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

0 b& T* y9 I( s; d% c, N( @4 Y! C
( \- h6 }/ d$ B' T- V9 \
" [ o: I1 g. H1 A A/ d

t.seth(150+ang)

/ b4 C3 ]& r. [, D% C) e, ~
7 W3 K |; Q9 |3 ~" _
" W E9 g0 ^& O R j. Z2 a; R" `

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

/ l, {: {) H# f$ n9 _% n0 K' B( U
9 Q6 u. W( H" {- t
7 K5 ?3 m% ]$ o5 U

t.seth(210+ang)

8 E% G5 Y/ x; L0 X5 j& S! ?* d3 L
! i% g1 h9 [' n/ ]0 { c
+ M. I! v( X3 ~, L7 U

t.forward(len)

; B, U0 A, X: Y
' A1 H& Z4 [, e: m
( V' {5 a) C' U. w( b

t.end_fill

8 T! p4 S& P1 q7 q3 G
7 i5 K3 N9 J; j
2 x' o X: r1 O5 Y/ K

t.fillcolor(c)

# B* {1 N: E( z# W
) [% w$ g1 l7 `$ _' g/ L
4 N& j" N9 C! p3 n3 L+ j5 }! f) r5 B

t.begin_fill()

- g) w2 Q! E7 w, b
5 M& Y4 O* S1 ^* q, U
6 v" y6 b( I! _7 _5 R

t.seth(ang+0.01)

, n+ r$ T0 I1 R
- \: x ]- c* h
- R( i8 M7 Z$ b3 ]# k$ a c E) W

t.forward(len/2)

/ U8 n# r# L; E+ E3 x8 V' x
6 K. ?0 o6 }4 q/ ^3 z1 @
8 e8 w S& M2 b" X( h

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

7 ]0 L4 |" C$ g5 M% |
! w6 K4 H/ D# T
4 ^" x% r9 |( L: w) H

t.seth(30+ang)

; p7 y! @7 \3 a! O' ?7 q' ?$ W r! s
* \: A: s. G# I: _( U. L* N
( ?' C. v! s% E6 e1 I8 L

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

9 E: j9 v1 n, d3 o& f# M+ K6 l
8 P; R ?% v# V q% b1 p
4 q& V/ s p; S( l7 p* y8 ]

t.forward(len/2)

Y; D2 o1 T5 `
* r/ z, p P& q2 F/ x
( K# ~ ^3 J. o$ W) |) I4 b5 r2 k

t.end_fill()

' L- ~0 i* x2 m" g: G- M/ j* ~
$ n A) C5 W/ o( K( F) `
z5 ^( ~2 x! a, o

for i in range(12):

' F/ ~: a* X, e, q# U+ I
( U4 T6 W8 l7 b o& W; d b$ p
E) S, |6 V' a

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

8 J. K9 H5 C# }2 D) ^6 S; \
/ x& V& G! h- e2 N. \
' q) k; y- H) A. S+ V

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

l9 k' t0 t, W9 j/ Z% V
. ]. `$ {: M. I) b4 I' W8 ~% K
- L" {9 Z( u' ^

t.pencolor(c)

9 a, @" d5 _2 i* o( j; W' j
4 v# H- A" Y, l ^
; y4 X" m& o+ u/ J5 {$ r

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

2 `- ?) \9 {# h* B. {3 D8 W0 p$ e
: h& l# V% [" P
4 W) p, j/ U. H; [% |+ f

h+=0.15

5 S* ~+ D# ?8 [; h$ `5 t Y
/ p8 ?, l0 P) W! I" _) ]( Y+ t
/ Y3 K% F+ ~: ^; c% C$ x

t.ht()

" R' L+ y/ [6 Z* X& P# q! U
) v1 r3 W& _& m$ ]* b
' Y3 r. A. \5 I: w, L' K

tu.done()

y& m; e* j$ o9 G6 J$ Q b
0 @/ C; C) @- S) p' h5 z
8 v$ }. ^4 P# y! K$ u1 B
1 S9 u( Z% M% w8 g* @7 w& D! W
3 Q* H! Y: F% F
) F l9 _' m3 l( C% @' ]
举报/反馈
, `+ W/ G% I3 w, ]8 g
4 Y! L6 i; y5 n5 B, p3 n2 g+ y # d) o5 H7 d1 p( Z; j8 T" z 3 k: g( W" ?3 a/ S- v! s) C7 X A6 h2 I& g+ [ 3 D5 P* V* y1 i% n3 a
回复

举报 使用道具

相关帖子

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