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

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

[复制链接]
4 w) ~: B: L0 s4 t$ n- U
5 V3 a1 U K' y
. X5 Z+ Y0 e/ r# g
5 [3 F5 W4 ]" P
01:39
7 O# {* O3 x4 C( ]( u
/ P( t! H; |: S+ e; O
$ Y+ h% _; A; \/ \& h' ~
8 v1 L: Y3 {! X$ G
g2 u* }- m% q9 G' m2 j

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

) E$ V* y9 M* g. w: y
! G) W% q% m& T6 Q
9 b- B% X% M+ }3 H
用python画漂亮的类似七巧板图形
: n) n4 y3 \' p2 w( w
$ c% _, J' w7 Q+ ^ G7 I& i
/ F9 G; Y6 I- ^" Z3 G$ \

import turtle as tu 调用turtle库

+ }3 G/ k5 }" s2 a2 ^5 k
8 ~7 Q. d: d9 \- ?! h- M) g) F! L
9 L# N8 w& X- \" ?5 N

import colorsys 调用颜色

7 L( ^- r2 }! |: }& U; @2 s
; E3 R7 i* k Q2 R# x8 Q; U
+ L& r/ S: h7 {$ a: t

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

4 @. A$ V4 ^5 i* F) n7 W
- A b! i" O4 ]% N% h
; N+ p/ L0 O- r1 F) `" x% O

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

6 Z0 d u( P( O6 @, d3 g& |8 ?
$ {+ {1 H- v) I
7 K8 E) R5 a5 n/ r5 D- x6 ^

h=0.3 设置色相

/ x2 r: h$ g8 U. e3 ]& w S* H
- O% P3 R* T: B3 x' M
. M, V! \+ p2 t: i

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

3 s: g$ i7 f3 Y# r
& N5 N9 s N. ?! u
) Y0 M3 P5 r3 x. b4 h+ W, D( F

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

9 Z/ \4 ~1 U' Q* G" `
) [; i. Z8 `5 }& N7 }
! u* ]9 o) G3 X- A' L* R

t.fillcolor(cl) 填充颜色

9 \7 O; M7 C* \
9 R$ ?- Q) s+ x* x$ r+ D9 l" n
7 g/ |7 k* n* ^( Q Z( @

t.begin_fill() 开始填充

" s6 c6 P) \ K
7 f0 f M1 y m; c% V+ q
: I/ H* L" I4 ^

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

' Y8 e* _9 [9 a
6 L6 H- t$ C: x1 D% w
% G! S6 f+ H$ x9 g6 F- }0 {

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

* f4 z, @7 S0 q. y% E
9 a5 T: R8 N* O0 H3 q) R
2 O5 Y/ a- _/ w

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

; |( K- I5 t/ d
/ G1 K+ K' H) m
& q6 [1 u/ w. }7 {- y

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

6 y0 R# c: O9 Q r, g1 ~& V
2 ^0 ~% w. _5 N U, v5 U
1 ?. t6 F, W4 X8 W, X6 H0 J

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

. }2 X7 v& h2 f# b
* V% D. D, u2 M( e$ S a4 P
+ W7 S* q* Z/ b- ~! |5 \4 p d8 t

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

6 N7 V6 @2 H3 M4 H" _! @
) R( C" X# s8 t" @
: u% v* o0 ?* ~% R

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

, l" J s& Y& G7 ?- A1 t/ ~
/ H$ g- ~, {" n
) L) m6 Q* }/ L

t.end_fill 结束填充

4 W4 ?6 T6 k, m1 ^
" s% b% o) p$ H$ f, R7 |
1 I% k. U2 w8 |" i

t.fillcolor(c) 填充颜色

: L6 T- z( i5 Y! e- {
/ l* s0 A) D. a3 ?" g" O
$ i! a* t& J' a3 {5 a ?

t.begin_fill() 开始填充

& Q% q% i0 r- C' k/ E" E: U
# k/ f; G1 r5 _. N/ a. i2 \3 B
0 U1 o7 W- y9 _7 d% w* J! s% y

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

) a8 Z1 G7 T: p& h3 O/ a
" h l. s2 d, ~. c. r, M
# ~# j3 R* i8 l+ q. z/ x; c

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

4 Z1 x2 V/ L& D9 r3 r
; u7 j2 ?( I* M0 x% q! h
W: y' O- r) j, S" i

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

. b; I2 [+ J; d) u- s
6 F8 w+ H2 | E7 J$ i! s- u$ D
8 j( j% L" Q q/ d" N, ^+ f4 S: W

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

+ b2 C8 {2 [$ o6 k
: j6 F3 x3 k: a* r# q) x
- k& q# p3 \8 E7 F [

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

' {" i$ F7 `8 c2 L$ O3 d3 G& w7 Y
: h* c! m( w) V! L1 q- Z5 o- j s$ B
L7 z1 b: t" p% x+ m6 f

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

. M+ ~5 d- E$ z0 |& F+ }
. N1 Q- L( i7 A0 p+ O
% l/ V% s6 L/ Z+ \) o" c+ F

t.end_fill() 结束填充

7 y3 E, B8 X: ]. \! O$ T" N
4 v- C- a, c! c- b D( V
3 s. {+ ?. |: W0 v: \8 c

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

, h# U9 b: z) Z0 a: T4 K. S5 U. N
/ ~: u0 @1 C- R7 T) l( x& c3 V
9 \/ v, V, Q$ D$ w$ z$ z2 _

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

k, p6 c I% X( ^. ~2 T. j
1 W1 N2 t6 l) W; W) v
9 W* S, ~, v, w; j" o4 `

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

$ o8 B2 p5 |; }2 q& l9 P
* |9 W7 J# Y; C% F6 k
$ Y+ @! U7 q) C, G6 t

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

9 E) G6 [8 s9 {" O' K ?
0 A: d+ X6 b9 W; S- t3 R q' Q
6 {3 n0 u" f& j/ p

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

5 v( [/ [! v" [7 g {$ w
( Q) ^, [- S% t* y
) _* V9 e0 S C1 d8 r4 B2 A8 m

h+=0.15 设置色相

2 r1 {# S6 q" ~0 d! L
& e2 [" Y2 ]! n# x- o" r" u6 X$ s9 Q. b
+ D4 F1 C, E6 f: j$ Q$ d: J

t.ht() 隐藏画图

5 K6 h9 x2 @+ e4 B! n5 u
8 F# N" _; t0 S% o, k5 e* n
/ _4 T. O2 A% H/ [9 n

tu.done() 结束

& e' j# _, o7 |, S) B
8 w; o- ?$ N/ z8 H/ Y
9 Y: N4 t5 ?2 ]
5 v9 H4 k2 V. O$ M- G& R4 j- k# [
( y/ i! h _/ | d3 R! ~! ~
" o0 _4 N6 M, y3 b- h0 S. D

源码如下:

+ R) ?% m$ M2 h( B1 y
3 x0 w. m0 `. e' v8 v
$ B+ z$ @0 d9 N

import turtle as tu

: o; {, \/ z1 o6 e
! v" n5 q! ~1 v1 `4 ?$ T+ }1 c
I. ?8 ]6 E0 y& n

import colorsys

( b2 ]4 m& Z, H7 z, y
, |& K1 W4 p m2 @ L0 R
; e ~% v0 x; \. K9 F

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

) o* P. I s6 C r( q- z
. V: L( x1 r; N1 d
! r# q# e, X2 m8 u# ?

t=tu.Turtle()

" I5 a$ [& k1 K2 }! k ^
( h3 F8 Z) [+ |
& p& m' R1 H7 C. z8 i

h=0.3

) f( V+ e- [' W; o7 j! I
" T2 r1 Z$ _0 D# K8 l& M2 N
+ h, k2 ^* \% t1 V `0 a

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

" l& d& ~0 H2 w4 \/ X
! j) D9 F L5 R* ^
- f7 Z, }% e) I' A) Y

t.seth(ang)

9 m' M$ \" ~1 w3 M& x3 n# B
% g {, B" m* z8 }! k
/ ]1 ?, n3 _% f- q; u

t.fillcolor(cl)

3 Z* a! ?3 e7 D. q, l# l
% A3 q2 O; R' C- x! W4 _8 B
i R! o6 I7 X* }

t.begin_fill()

4 @" A; S# ], e, }, [7 V
6 Y: X. N$ Y, e. a7 b' }3 _6 J% y
6 N) w% R" b$ y: p

t.forward(len)

, K$ m2 G8 \* b- v! Z) n
% ^ G, [6 ?* E+ s8 v7 ^
0 O' z6 T5 Y# P( u) {1 G

t.seth(60+ang)

8 g- p; M) ?: f. T: ~1 M1 N
6 o% J; S! l) d) W8 C' U
& |3 P# v% `5 r+ ~$ H

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

0 B n5 k% b& ^3 y9 G( S0 V
/ y' f z5 r. D1 \9 ^
2 d5 B- H+ i: c: f' M T

t.seth(150+ang)

: s# m) L$ U! d8 K- p6 b# T
9 P! M3 I u B& U: a1 ^
) C0 v2 H" |" T# w, o/ f1 g

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

: B- m6 x4 Z! X4 h% R8 J
8 }5 ~6 Y' Y/ o& ?+ r9 w+ A
" F$ P. B% i! k# C, R$ |

t.seth(210+ang)

8 }, S2 Q7 L9 M& n7 f1 `6 K
+ W$ [/ C* K8 B* T
" K9 M9 o0 n: |1 N

t.forward(len)

. i) Y. V6 Y2 r! E1 K9 Y' T
2 `2 E2 T1 W, ~# c+ r
9 a) }/ l+ Q, Z [2 a4 R8 I8 m' U, t

t.end_fill

) }- \* O, ]9 y3 ~# }
) @: ^, M) ^8 u" W, Q6 V- A+ M, Y
% ~$ n8 }1 W+ ]) q" a2 K

t.fillcolor(c)

7 m0 X% g$ L' x4 q, N: i5 a) o7 P7 K
* P) ^4 \4 R1 z$ _# ]5 |% R5 H
* c. |6 Z/ ]+ p

t.begin_fill()

0 a7 e% f0 a9 t4 v; v
& o) p, A0 j1 d4 e/ w
( ]3 y* H# t: y2 h, D3 F

t.seth(ang+0.01)

2 j7 u' ?' f2 x _7 U: [
6 g4 o# M: c) L8 C/ D
8 j: K* n0 D( A' b% ^ f, E4 T

t.forward(len/2)

* @) \. b- w1 T) n! O0 h+ ]5 }) P
8 c2 d9 [ n6 v9 r% q7 G
, k2 }1 s4 i2 U. ]' i

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

# N9 \0 U) y$ Z
- G, R' V6 z. t8 Z) }
8 p) I( W3 }$ R8 U3 H

t.seth(30+ang)

: \% |9 |) M) \1 V3 z" J- S
- ?8 n7 H/ Y$ L$ I
2 b9 P* e6 K$ ~. z& A% @' P

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

/ d/ z0 v7 b5 g1 ]6 H- T( P
% f1 h4 E. A3 G% O& z G/ H
, V" B+ A) w3 @5 m! a' O4 c

t.forward(len/2)

7 o7 o* f/ I: C9 L9 ?
" A) Q; O$ A1 m" K
7 K. K( Y; G0 x& `1 W9 }# A

t.end_fill()

, p" R. k; U+ y1 F1 D4 S) R4 j
( a7 ?( e6 n0 _) ]8 d; _8 |5 V
. a R4 }7 A! N2 w

for i in range(12):

# e8 U/ y; S7 h4 o
2 \% O0 ` ^7 ?
. [9 }& f9 N" v: R t

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

5 d; q) Q1 U5 U# K% h" W: N+ O
) Y- l; \7 C O' r) x" b
, Y/ M2 \: p9 b6 X

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

+ U4 N3 z* P1 l& @! M5 [
, ~( i: W7 e/ G
! B. j& N: ]( Q% q3 O8 e2 m! u

t.pencolor(c)

4 J+ B9 o2 d# ]( Y7 B
; F1 s. R3 x7 T* A2 Y, m1 J
$ J$ ?' w% J; b/ U9 V

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

8 }- V2 A2 U. |2 D8 I; v
~. n# h; c6 f
6 m( f: W1 G( \* f7 g% j" Y

h+=0.15

& |9 |; I$ F# }" [
1 k* ?0 X& g4 T1 ~% f! x* L8 l7 c
5 u9 ~0 U/ e0 E, z6 E

t.ht()

* C8 {. o* J: d6 ~6 o6 V
2 q2 Y& b4 L0 d' ?4 y
2 k# h, f- R3 o6 J1 C

tu.done()

5 G1 U; G( a- K/ h2 D4 M
' s; ^, s0 G. B/ ]+ Q2 K
" ?1 k% Q; Y9 L& J+ T; V' x: X- }
& U! W+ {# Z2 ]& a5 l9 O+ y6 T
2 b8 T' D# G. K! z+ J
+ P* ]% A( J! y5 i- H/ D6 X) M' C
举报/反馈
) Y- p$ @; m# {2 V0 w& e" t
8 _, V. m2 k9 S# F3 w& L# Q& v6 p- _ " O7 h A- l3 \1 e8 F4 Q3 i1 s8 m7 G, C6 s5 X- k' b; z# k& N x 5 t7 Y* ^4 O: Q" c; T2 B6 l# B A; O; ^ @$ x8 r& b( i G
回复

举报 使用道具

相关帖子

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