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

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

[复制链接]
% n1 f. Z$ q, e# O
* U4 O, j8 n: [, @5 z5 B
- m2 D2 r, N+ V0 W8 o N* P9 k: K
0 S. H* n' D, A+ ?6 ?: ~
01:39
/ ~. w6 _% k# h5 q+ n
( O: o5 a1 {5 D* U; Z" F2 R
0 S8 {4 u" Y. g
% \. b$ l% Z$ P" {5 P
6 T0 m/ l1 a# K: g' ~

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

6 @! `5 X( u& x) \6 U
! N7 ]& {; V+ i6 r. q4 ?9 t! ^ O, T
2 I, Z, {* m' C2 w( F% p
用python画漂亮的类似七巧板图形
, w1 ~3 H2 }+ U/ Y8 A! Z1 R/ v
* F" v8 H2 m+ i P4 q5 O9 @5 A
- v! [# I6 d% [1 c1 E, E3 c2 E8 m

import turtle as tu 调用turtle库

# i" C# B. E2 n6 b7 K5 j3 T1 A
! a2 v4 D8 O; R" c) C
2 y! F, |" f" V J; }7 d- B

import colorsys 调用颜色

8 y, c4 Y) ?1 f+ w
1 ^: O/ O b2 R% a n" P& P
9 e s* }9 B; s0 Z1 [1 U

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

+ l9 W& {# H7 i: T2 I$ [; X* z9 W4 R* O
4 V, O! b& G2 \: N% v
$ j& E1 C4 ?: E0 d

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

: m3 C b" B5 Z5 y2 T6 K
: |3 X. T! i/ R/ I5 n
0 }* Z& I7 q; b

h=0.3 设置色相

9 f+ x6 s7 J; F
9 A1 B, F; S$ a8 c
* q& ?% t' [9 G

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

* H6 [" W% c6 t. D! Y9 [# y- F
" Y' e/ p1 }6 ?
, X! ^( h& q0 F' ^" U; h

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

1 h4 K# ~# J9 G/ Y% S/ T
9 z% H# X+ g6 P8 F* a( Y
, @% H, N1 o4 d8 g* Z

t.fillcolor(cl) 填充颜色

" u0 t# O- A; w
# G" g! s& \- G+ l8 H2 i Q- R! [6 @
8 n/ E" Y! ? T2 l5 p1 K! K. V

t.begin_fill() 开始填充

, [; e( m1 I+ C4 n
) `( z& _1 v& v5 v
: o6 c2 D, `6 j* ]# v: J4 [) S- L

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

" T+ N O0 o/ |
, x* T2 D0 y. d7 {4 Z7 g$ T/ o
/ B/ z- Z' X D! a" l$ Y6 H P

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

% v- r0 z7 i" J& T- J
2 c3 q" F& r2 a3 @+ b9 ?
' c' o, w# ^. ^$ {

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

& P0 {1 T( B$ `7 F5 X2 n' O
% n" w4 z8 Q" s+ B$ b$ u* | K) L
( y; C. J R' P- E

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

. {+ r% o% O" I2 U. h: A9 l
' ^6 S* g' g( _
8 K& `0 [1 W9 f& U$ P+ s

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

6 `- u' g. ^. k: z& Z2 S* V# ]
3 f/ u3 O% ]4 e; @$ [# K' x
1 o1 b- [# D4 ^1 ]/ v. Z

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

4 K+ v, z/ n/ e9 O
8 j$ q+ q" U- D. L& i$ Q+ _) O+ w
8 o% t7 x6 x! ], _

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

( [/ j/ ?8 p+ ]; |9 F9 c
7 K+ q' s1 L$ Z1 m: H! ~$ N' h9 n
4 E L/ y' a2 g8 H/ L8 r

t.end_fill 结束填充

' D# {3 i: `- n* A( S7 @" C
; \& M( \' C% X& O6 P) z
C+ Q5 @! k% w. I) _! l- _* ]

t.fillcolor(c) 填充颜色

! z4 v" t' u" z# |" T) S0 u4 K
' s: q. a7 D3 S* F9 K
[, ]5 N+ M& Y1 r/ [& g$ ?. c

t.begin_fill() 开始填充

/ E2 b4 r& I6 }* J* @" M
Y5 Y; O3 s: c! F% B6 K0 E
. A$ }0 f" o: | c/ m

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

$ o* q Z; y# S8 i: [
; \4 q, s3 z) @: a* A
6 [4 y% j2 z f3 H3 {

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

' H% r$ a9 Q0 a d
" t5 W- b+ ~' \- s* K( t$ @
- c: ^% W) ]0 _8 Z. D! j8 I& A

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

- o8 g W& e# @9 c3 ^! f
A# |2 j0 q& Y* U J* j& z
+ m- V& |# I6 Q+ j; f

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

$ z+ h& R- T# z# r- q* n
5 y% M" M0 O2 `4 G$ r
4 Q( J* g9 J* V6 \9 q' B$ e: j

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

3 C7 x& G" k. @6 ?
8 R, x. C! l7 {( B- h8 D7 C7 p
' u1 c+ @, @( T3 P

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

7 W* }) {. \8 _0 {' S. W
5 c, F9 I% J0 z7 P
6 o& Q P, d0 P: n* w" T

t.end_fill() 结束填充

0 b6 O+ M: y9 e% Y
3 b; w# b6 p$ J. U$ m
* i8 f+ i+ I" i! Q0 K/ ^8 U2 G

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

) n/ B" w1 f) r: n L* E2 ?
8 N6 K* f7 J% t
8 k$ h0 r" r3 O* J U4 e9 R' y

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

, t* o* g. T- n4 v, o
v, C8 I9 T0 |* v9 g
2 j1 L9 C( ~5 H3 v7 A

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

) h9 m1 ]% t0 q/ h9 l: P! L
( w4 B: k5 b3 Q' |
# R7 J5 s- ~2 P8 y. s* B- w+ X1 U

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

" ~# _! c; P7 m& c) O. ^6 X
' \$ k P6 r. O7 p7 x4 B
1 `6 t! K* y" ^( u W

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

/ H. @/ @. N2 O2 }5 F9 k
: B0 u4 R, U1 v
3 f4 ?$ y, S; a

h+=0.15 设置色相

2 i5 |/ \" G" N8 h# H& x* a
$ K7 o8 o* n5 f' N, j
. n/ k: D- \5 U, n& O0 T

t.ht() 隐藏画图

+ t( _9 D$ A9 X, l
- O; W6 b+ p( ~* Z; h3 {
$ E) C* j. j7 O$ W

tu.done() 结束

/ Z( y3 y" m1 t- K0 V5 K; ^% C
+ t g' ?) T4 T, {5 h' i( w$ D
8 R& r4 m/ g' H7 z% \
2 |3 P" t& l/ D# `( g+ W0 ]1 K- P
/ T" q# t3 b5 E7 y' ?0 h
# e, |; H+ `" o' r& b$ D6 r' P

源码如下:

& C8 O! r; k, B8 u G" d% _. o9 i" K1 U
1 ^0 r! q# i; W3 S) d5 V% u$ b* a* H
( {* A) B- d7 h* t7 n5 ?

import turtle as tu

, g' Q! f% ?$ d: r5 g3 M
5 E: w6 f3 ]7 } e$ z/ l0 x# [' H
& {, }4 E3 z0 I

import colorsys

: K, D4 f0 E% ~6 f8 a K Z
$ ?4 D8 j( G' F/ p( {* U
/ d2 O, O, }3 U7 s

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

/ K- C7 a# O! X1 p' q3 H/ A
: l: I8 U- X* } a/ i; ~
* L0 I; U3 b) Y2 G6 w2 e8 o

t=tu.Turtle()

' }! y0 s+ s2 z
; i, S; @3 c: c1 ]% d, Y
( u0 Y7 H( Q8 u* ~

h=0.3

" s3 ]2 h, u$ p" L0 l
. S5 s* g' [6 o7 {) b
! t& @! y* {1 F& d' ]5 p( e+ Q6 E

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

5 n3 n9 E @* b3 g, j
; r: p) A; y. t7 M8 v3 h2 p
: b4 o/ c2 S* E' T; K

t.seth(ang)

- V, G: ^& s7 V& [
! d8 E' {# d7 s( r" d1 m# r
+ ~. U" L" n5 o

t.fillcolor(cl)

" W4 P$ X) C5 R/ v* N( ~2 L% U; b
+ i& a8 H" `0 ~" ]2 v; _ ]" T
( O. u/ h g3 i% W

t.begin_fill()

7 d- ~: v$ ]! w4 @4 d+ e! v: H
$ j8 a, \1 b8 k1 O
, Q( s7 l3 ?. S8 V

t.forward(len)

) B) ?3 l9 q5 Z3 c9 k& X8 y
9 n W& w0 k* b1 }/ X& t3 w6 o9 p
$ c/ `6 N, f8 }2 c

t.seth(60+ang)

2 h7 D& h5 \+ s% C& l* m6 @( r3 o
/ J+ E% W" |7 ^/ ]* D6 _
! y, c: X4 ^6 C: S/ s; G% K

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

' e7 l% t5 ^# h# O
5 ]8 \4 p$ J3 b: o
9 J* m0 F, Q2 K" P/ I

t.seth(150+ang)

" D ]- \# ~3 Z' u' |* C$ Z0 a
! G" `( X. g, Y
; Y/ x! a8 L# h: F2 \; b

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

: l& X. a3 C5 T
: [0 p. F7 L7 S1 A* @
5 f& d Z/ P" C( y6 C$ w

t.seth(210+ang)

# a& s( K: M- ]& s k0 v9 l
+ ^0 J1 M) v: Y; r
( Y4 z- v- @& k! Y

t.forward(len)

$ ^$ W+ \' ~' f4 p
$ J, F6 B" n- T1 X: I& r
: r5 |2 `4 e v

t.end_fill

7 k% a& E8 p3 Z% D3 m/ z/ u
; I" [/ l6 H) _ l" m; r0 J S
: `7 ?/ [! s! J( z% A J4 @& Y

t.fillcolor(c)

7 A* E: O5 f2 O
( \4 r- D7 R* z3 w$ w
" X- L! `8 f) R5 ~. ^8 G" u

t.begin_fill()

! l1 q6 x: I2 r$ F
3 B) r2 B, h q T
0 i3 j, `6 e, }, u% h

t.seth(ang+0.01)

& C2 y$ y5 @8 T! k$ j6 H
' J1 s' `0 l" r/ I$ b2 ^9 R
; a# H7 G3 m e

t.forward(len/2)

! @$ Y& g- t- u( T+ n) Y
1 ] L; j& J3 w8 a) l0 q3 ^
% M8 Y. E. a& a$ T$ q% Z M

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

# b& U: m8 k; s1 p0 T) |
( \; B$ U. B- S! A! q
* h3 U3 I& C7 S: i( Y

t.seth(30+ang)

( w/ B! ]# t1 z
4 x5 u, P( k, F" g
8 ?" c# M; H5 F) {2 R) n

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

3 t1 l/ A3 \; o- _0 V9 `7 P0 h4 J
# M' L8 l3 A8 r+ K
2 ^/ m6 p0 z: s. o

t.forward(len/2)

+ S% J) n5 J' b
8 N" F6 Z" {* j+ W$ D6 k C
* }5 m1 G9 r9 o; a

t.end_fill()

* K8 ` [! U/ C& X Z
5 K8 V0 J1 {& \7 ]
* L! d+ r' r: _( e9 I( J

for i in range(12):

9 k: A* N" K& k/ J( X& N: K4 z
. ~6 y2 N8 J$ @; u! \3 L- Q1 a
/ N8 O6 ]% `2 S: O

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

0 J7 Q( Y8 t( M: M0 x2 V) Y
, N( ]4 f3 f3 o. e( I
4 k, E+ @; q2 w9 `# D8 N

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

- {2 j0 t! h* U" L
( A! O% I* J8 ]3 y/ Q$ r; e# ]; k
' X5 D# I8 f6 d- m; [' m

t.pencolor(c)

9 t: ~ b* J/ Q+ \+ }
0 S! S) N S7 g( p
( a o$ c. W- P+ {; h, g/ p N3 [

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

- S3 t3 {6 W) V, ]% ` \) E1 n/ u, Q
2 J7 r) F+ }5 [1 j
, \; o1 f2 B. t# y7 i- ` O! \' b; {

h+=0.15

* h$ x7 s; `; F
( s/ w! X; l. c
; G5 K7 A1 p U: y

t.ht()

% N5 K4 \, T% c1 L3 r$ o8 v5 S( Z/ A: ^
* {8 N- V( r$ z; @1 m$ T6 }
0 b6 K$ J, z1 e

tu.done()

9 n7 S) r, j% T4 J; D
, D' F2 R1 e& N. M7 j' G6 J' |
' I, S) R" W0 x0 A% {
% _) P2 B8 Q, G" ?. `+ H5 ^
2 P6 `% w* r. s) Y6 f7 Y) i
b! {# m( A0 u1 n" N: ^4 ?
举报/反馈
6 _; `6 b: [5 p; J x0 d8 G
% {' Z* E) c' z' Q0 h, P6 Q' z1 P+ q0 \; h3 b+ [( \$ Y1 {* O 6 G/ y) ?; E- [$ b * y* p' Z: \& J6 T6 q+ H/ W3 H 5 S8 m/ y/ ~) l
回复

举报 使用道具

相关帖子

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