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

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

[复制链接]
6 f2 v! c1 f) R* |% c
7 d: p/ A! s, S7 b, T6 C
: x9 V, i4 f( x/ }* f3 G! ~. e
: r% R" i; j1 P8 D* C' k
01:39
4 I5 J+ h+ y9 R# V
# q( i" L- L/ c- k) W1 C
, s8 x: r0 t5 |; ~
p& W: B5 X! s7 B% [9 g
6 V c( [" ?0 G, @' ?, B, v

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

$ D1 `. O2 T! \! X
! K' w5 E7 A' E% U* }6 R0 e9 x
; x! j& [% F) j0 e' y
用python画漂亮的类似七巧板图形
+ r! }, R1 H& X4 W, q2 V
6 n+ V# U7 ^. p
0 {' A0 B7 e6 i9 {9 y4 @. f

import turtle as tu 调用turtle库

, o2 t c+ C& R1 W9 U
* M( B l" r2 v+ m) @$ k- J; T
4 |# H5 K% u7 X5 |9 ?6 t2 y

import colorsys 调用颜色

1 T5 b) \( _. S0 W9 j$ L$ j. w
" |) s9 q: h1 i/ J) e$ T0 l7 q
, [. L8 ~% e7 c3 S4 [. a

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

" n0 _; R# ? ?
' ]& O4 q* {- K! B
9 X+ @9 E; X9 j5 [9 I

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

) M6 T H# J9 a/ i0 ?$ Q# C, n9 R( ^
6 {# }( E- i" G( T
, E1 L5 ]* t+ a5 e

h=0.3 设置色相

* ?7 c/ O4 I" R& P$ L
3 L" Q5 a, `& |
& c: `+ z4 R6 C% M, j

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

; c' n7 Q3 |/ J, H( \4 T
, L* e/ W/ R6 u! b' m, f( z
) o- t8 g, o7 y8 ?7 L

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

; j1 F6 Q. D9 t; D# R) s- Q) V- T
8 V- I8 M. F8 }) L+ t" p) m- [
" v/ o9 K0 s1 t8 N$ G

t.fillcolor(cl) 填充颜色

. S% e: Y3 l2 K r7 `
; }/ {# s8 ?) W7 {3 M
, |, G) X' O% ?3 I: `( c* N

t.begin_fill() 开始填充

+ K3 ?# x' y) E8 y
( @: h3 f# ^4 f2 m, Z5 x5 n
# ]$ F2 o p1 \# y ~9 i; c

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

- `2 @# @3 l; z
9 m) o. D1 g) H4 o9 u( e
) o/ @7 [6 N& n, R; X" e

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

5 D7 x) F3 Q2 J
1 G" N6 d" s: A( I5 {
. K; Q6 a) F* K' ?* q- r! _

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

: J- A* K0 @! ]# l) q+ ]' |* v
$ G- S( x- f- o6 I Y* }5 |% T
+ a! ^( `8 N: L0 F, ?

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

# u6 `4 n2 Y/ m& V7 B |
1 u8 q/ J7 |/ H+ _8 U" T$ h
0 B9 n# Q0 h7 f1 s' M b

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

! o' n5 b; d, ~, A) U
9 z0 R z% j5 r* h5 S5 \
( f+ `: y' L& U! t; ?. b4 N

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

+ k7 T2 h R1 m7 Z! ?; _- G
4 X1 f4 t u W7 j
- O$ w3 f, Y, z u" ]4 w l! C

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

3 W4 E$ y* {4 ~6 X6 Z
8 f4 l- ?. a2 D2 V
" M6 W y, K& o/ s9 F

t.end_fill 结束填充

4 F; K$ ]5 x+ B, b5 s+ t
4 P% E& ~6 @( G' }9 n" N
! x0 y, e. c& c' ]) C

t.fillcolor(c) 填充颜色

* ^1 Q/ t3 r- S! }7 V6 Q3 U
8 r! O! b: ~+ w/ m# X; s) |. Z) [0 h
+ C+ y+ L% ~" _$ U* P! I: q

t.begin_fill() 开始填充

# o: Z- V+ |- a' G& M
9 p0 ]) d \+ V& d
: y! T+ L( D' A4 l

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

6 ]# B& U B( g( ]! L1 z, E
/ h6 H; H+ r z L
1 z x+ p5 _1 J! Q( k% _! F4 V- d

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

% W# x2 q' \6 d& |& ~; a5 b0 S% e
! y& c2 |8 S+ M* M; H Q
2 [1 Q& A( h+ m' E% ]

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

0 D+ \* |7 n' t Z) ?9 U; a
4 I- I$ T" J# k8 o d
; g" l. V$ Z. j6 d

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

. |7 s: b8 @& v: p7 A' D
0 S5 W/ O- s5 d$ ]
% e. s5 o, e d2 J" f

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

" g) `- e. d- S9 Q0 K5 P" w, k4 G
. D1 T" _, ~* A+ k5 R$ K3 t( {
( p# l: b3 F" ?' T& K

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

# S0 g- t& f2 D" F: S; o
+ q# j, v% }9 I! W: J
' l5 O7 z7 q, U; a: }/ k

t.end_fill() 结束填充

8 f' _: o9 i, O" A. P( l
( t" Y; \9 B6 c1 F0 S- r
1 D+ u5 J9 Z0 s$ I

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

9 l, L% J7 B4 P7 p8 Y
/ Z8 N4 t% v3 Y+ ?9 [
0 o6 O5 L0 B/ f' j7 G

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

0 U4 O( U2 i9 r+ j* C
" A$ l2 X5 P) b) V7 Q# T2 [
# c& [5 k9 D& \& N& J3 j

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

, N0 p% c1 E, i; y S
6 e, `/ s+ t. X
) f6 F$ o5 ?9 F9 V$ y

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

0 I; _; p; c( j6 C
3 Q) Q$ f" O6 w2 a j3 b( \
$ v4 r6 b D1 K$ K( _

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

$ e8 A" M$ \* L9 b) k8 t8 m
L& R+ z: v- v
. o) n/ |! b b6 L1 {- L3 U& o; @

h+=0.15 设置色相

' ^/ i0 g! o7 Z+ m
{% ?- K5 x$ q5 L- A
1 b2 J' f6 U4 b# z7 E

t.ht() 隐藏画图

) I6 {: r5 d+ X0 j( Z
V U& D( l1 f( b- g6 M2 H
* d& A- B3 X ]* I5 j

tu.done() 结束

- M+ e0 d8 Z t5 u
, y2 k% f! y+ Y w: E$ w
( z" Q( a% h3 p& W0 y$ o
3 t8 {: V+ I9 e I
- |8 v( ?. V$ b$ s$ x
, K1 h! Q' [9 l$ T7 \8 H" I! B

源码如下:

' D D; g, f3 f8 K
" w+ L9 R+ w4 ?
, z$ s. a+ Q9 @2 u4 u1 v8 M; U) l

import turtle as tu

- y) V% s* a& Z. I t2 Y
' @8 l2 P! z' c5 Z
- Z6 s3 N2 g1 c4 [# Y* q

import colorsys

% _$ W7 J" [; u! {4 H6 N" v! a
/ `! |5 z1 `. N
/ m* \9 U% {9 d4 p/ f9 a

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

7 m8 V( k9 g' Q3 M: C, p2 M
8 B5 W! x1 V7 n/ A. |- i/ S
$ g- L) p: J T

t=tu.Turtle()

$ B7 u; e( Y+ w" n' S3 k
Q% J' D- w' }- E
( f" q; L( z1 a5 o7 V3 P

h=0.3

0 }0 @4 L5 j* ~. j8 H; F. J1 y
M3 w V0 e/ ~
1 V7 m i8 d1 ]

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

/ a; E: c+ w1 f+ x$ M: I
2 g( j+ E& @0 E
; L2 d0 i# I; j( z7 z

t.seth(ang)

! D- E E7 c {/ U: g* w3 u
) k" ~7 c8 Y, Y: H
, r% M( [# s7 ^0 @& ^7 Y

t.fillcolor(cl)

* ]$ j0 ?* E/ ]# v3 N s- B( I2 ^
( l( t; Z7 C* B9 B. |0 S
8 `) v- V3 u0 d8 X% X6 t5 ?

t.begin_fill()

& V# V6 y0 Z u* N" |4 P
0 E: _) ~6 f" U' n) s$ w
9 t6 a0 w4 ~* q

t.forward(len)

% y0 L4 H3 R; `' G/ H
& q6 J" F2 h( I
& a3 j! t( G; z/ P; n! Q6 V' X

t.seth(60+ang)

: ~$ ?( C* ?3 I9 C0 A$ T
" R" c% \( S5 S
1 Z+ M# Z0 g4 \& g: Q* b

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

+ ?1 E1 p- H7 a' m# k
: F8 s e3 m+ s' f' {) ?2 H, ]
, {; I: H" u/ h+ Z% _1 g

t.seth(150+ang)

' u1 r( f$ e# O# n1 D
7 E- E4 W- ?4 [" Q+ w
$ w- y3 }+ T9 q* ]

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

1 ?& H( q1 I+ K; W* v" I
" W4 C( Z7 M! h+ \, `
8 c0 a* r' y/ k& W0 d/ @$ T0 @

t.seth(210+ang)

% |# q4 k) m8 K/ R* w1 j) K9 N
; O+ [( T, W" f/ y
/ p# Y$ I2 _$ @0 D/ x l

t.forward(len)

/ Z7 y- }% e0 ^% q/ \; b! O
* {+ T( s; U4 H6 k6 F
g2 b/ S% Y, L, Y

t.end_fill

5 s8 ]# X& |- q' W) e5 C6 I! |/ @
' t( m6 q: Z9 O- y4 S. `
. x- \% V/ f/ x/ L8 i: A1 y

t.fillcolor(c)

) p6 E, G( r- f5 z% [1 Q# z& o0 \
+ R0 J$ @3 F$ x! p3 Q
^% S4 b7 g) f/ e$ b- h

t.begin_fill()

) k @) U4 y+ g8 b0 D A6 U
0 b& ]# {. z* q! x0 k
2 Z1 Q1 z% V5 G) j) ~$ K; U

t.seth(ang+0.01)

7 O6 ?/ B2 {& { K6 J# {0 z" u ?! {
! k7 t8 L6 \0 [6 r+ B
0 T6 M& p4 T+ j( ], G% E3 R

t.forward(len/2)

& D) U7 a, S5 K) t4 I5 p2 `
# ^1 t, K; \3 B) Z# W& E" P
, W t9 E0 d5 f! O) f! w

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

, \! t4 y2 q* O. Q
8 t) i! s9 G6 L% e
+ U- D o" e* z! o

t.seth(30+ang)

+ p. W r4 x9 V$ }
% _* r; x. K* }5 X9 B
. N$ s8 V& N+ Z8 [' [. G

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

1 C! O ^: x {3 ~9 p) B7 I
8 T s, @' F% E7 a
$ \/ c, O6 J! \% }# A$ E

t.forward(len/2)

$ [/ d: ?9 u# F4 ^
2 i' N. Y0 v* ~3 F6 t/ q6 X
( @/ t+ N# m6 V. }* u/ `4 U+ X

t.end_fill()

4 V* r& x& V1 h8 H- C
6 D7 v4 f9 C' [6 A: o3 T- z, C
- H- S& J% i8 O, y! [1 P

for i in range(12):

+ z3 N1 Q) t |8 X( p, l1 t
( j$ ]6 A E( p" Z# [
, U$ J+ J% v( o B Q$ P- |$ q- L) u

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

, m2 v$ i: j. N5 S- w) @
. D) A! H4 _& M, v* g& N; {
3 T7 x$ l; b- N9 T% d: p

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

; m" Z8 o# J) O6 J# g+ k9 E. a
* C% i" J/ O0 _- o: N2 b8 f
# ?+ j6 o; m3 [9 `8 H! [- q" c: S

t.pencolor(c)

& }; _1 g; X4 r7 s4 g- H
7 M$ i4 C( C$ t
# k6 g& y3 }* s% j

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

. y: I9 N/ q& d! v
1 d: [! B( l8 }9 z. J8 ^9 S0 T; _
+ ]7 |$ I0 y- I) q

h+=0.15

6 O+ I1 b7 z5 `$ t; M
) `$ U* r( F9 I( f2 H
5 i" E) q. c- ^' J% m! K: S: b

t.ht()

7 q& X3 u0 |: f8 S
& f6 N% {# d& n) c/ ?( E, N
1 }7 w5 c6 f+ f% m6 B/ B" `

tu.done()

: L+ T+ q. K% J" C* ^
% D/ K! L6 ^! p
9 A" _- s0 d; L! k0 H! ]
6 {: l* F! N. D2 V$ d; P
3 y% i5 V) a2 O9 w7 y
& x; B( s6 L* G4 m, E8 |4 K; u
举报/反馈
$ N" a2 w* `7 }% o9 }% ?6 A
8 _1 Z0 j3 f) t* `* n# o" @ ' k; X# r2 p A5 N) A+ s; D2 c0 ^ 2 h% |, K- V+ N/ Q& R# _. w7 U ^4 V- k3 X3 J% m4 \0 u) n- N+ _: S% K9 p. W
回复

举报 使用道具

相关帖子

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