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

[复制链接]
- l. N% u3 N/ c
, S/ h v; i' o! p
4 q; o: }& B" @' s, ?
4 y+ K9 W8 [7 D$ j
01:39
6 P7 b7 z& T8 b
/ x& j; a P+ x
9 b/ g% z Z: c$ A
3 @& w4 X# J6 \) x9 {# j. l
) X& b# e8 A7 z4 K8 q

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

( G/ h" H1 y, D/ { l
7 m% _. |) p" J0 R6 c
m; R$ r! i9 \8 |& p
用python画漂亮的类似七巧板图形
0 i+ ~) j; J1 F9 f- J2 c2 [
; ?. F9 l6 z2 X' ]7 X/ v6 V
) r/ S) T2 L$ K( p

import turtle as tu 调用turtle库

8 w' Y! a3 ^( ^
+ P, E' Y/ c! J9 m+ a% v
9 x+ Z9 G% m, p, h& F' s- m

import colorsys 调用颜色

; k) Z p5 t- {# j! F+ ^! \
; P q' j! o3 c8 J- A
6 A$ L+ H* c w0 C. z

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

- R A5 H% q0 Q" G8 Z: b; e
$ D t3 `) a' E
" q( G. w6 r/ m

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

- U0 m5 b& ] [3 z4 p5 ^- Y
6 c( n" L, ?8 S5 q
/ Q: x8 J" a$ Z% M2 g

h=0.3 设置色相

" |5 s: A6 _% y4 `' \
6 V3 W- c) m& s5 B3 M% z0 ^
% x t9 P* V/ d

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

d3 T" K- U. F9 c6 [
: T' P8 I7 x c+ |$ @0 @
D% \! e0 K% p9 y( E

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

" W& S; h2 ^$ j7 @2 T% ~* Z
) a/ d$ Y. R( T! C: U6 r6 n2 }% ]( c
* m7 N! @. l/ O3 }% s

t.fillcolor(cl) 填充颜色

2 ^6 }9 c( M' S
: Q3 t3 o& b! I% u1 [& I& Y- T) V
) I6 E3 |/ z d0 s$ `: j1 I) w

t.begin_fill() 开始填充

5 a9 C9 O% N) B' w) y6 E1 Y
* t. l t* i$ S7 W+ \2 X1 A8 e. J4 H
, O( s9 b; ^1 M: g' A; k1 d

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

9 l0 I2 q8 r. o
- t, ^$ f, \) t- e0 n
) [4 u& W+ T( M, _

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

, l: D- M1 x$ w& H% f
2 z& w1 X7 @) b* @7 M! |. m
. A! `0 O% Y3 P/ h+ S

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

, C- s$ \# Q, s" o3 p
! ]4 B A/ P( J6 ]& T4 j% s
) ?% k3 [* V m1 n/ ] F+ E0 O. ~

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

& s7 y3 n- t( o9 k1 }
0 s5 U8 o% U$ ?# R. P; h
+ |9 x, |5 {% \

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

0 i8 N- G/ U! K: x+ `7 }1 ~' Y A1 H
2 H! _1 [; |% k0 u
9 O* A1 d. [' X. l8 s: v' F

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

0 w( Q6 |* A8 ]% P4 j4 C
7 y. K" Z( k+ H9 l
$ V3 [$ d! z$ a

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

9 Y) x( g+ I& z3 n
6 V: t3 d0 u% O$ A" m# E: T
, @. k% K/ v1 h1 c

t.end_fill 结束填充

# N/ u& I, K( [
+ l2 B; ]) O) I: @* Z
+ @, y7 L4 p6 `0 q' K. d, X

t.fillcolor(c) 填充颜色

/ e- G& s8 P1 d! {5 P
& W2 k' v( {( n9 A, j5 B
' {+ ?" ]! \, Z. X- Z

t.begin_fill() 开始填充

4 {) R4 s" `+ q2 Q
7 Y/ R, q: N5 f2 }. _
8 s9 y; B% i0 A+ I$ M

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

' f& C, D5 \" V
9 w$ E1 h# U% T$ Q& S& a: t: D
3 n2 p6 K8 h- o. G/ q9 o

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

/ B; U) V9 W8 j8 v
/ ^# X5 T5 C0 G) v% y3 |
% C3 P& {+ H+ X: v- U$ n/ t

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

( J, q" O! c2 F; n2 [4 q
* L) L" G( F+ C8 b. T+ x" d
0 @; t7 r3 C6 v1 c$ c

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

$ ^6 B$ v) K B) T, l( g8 `* ]8 [
# G7 a$ ~/ h# |# Q+ v; {
& t7 c3 g0 [1 i" Y- b! }, i

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

4 I2 m/ H% u4 h, N- K; R; u
. l7 S9 t* H) h8 f; B" f* p
5 D4 A! r, _; d; k; d7 ^7 D

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

( e% J% \% B% T7 }! l
% z# K- F: A7 A- ?4 |) u. x/ V. u# y! J
& ?5 z5 G" i! C( D5 Y0 N

t.end_fill() 结束填充

/ ~+ @& w0 X9 A7 b" `
8 x1 h3 K6 h% s% j' c1 N
; @, W7 u. {' j

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

: Z' d! u( Q. I3 I7 f# U
2 G/ }# l! t' A; E5 h, ]* F
$ k% L- `* r$ v) N9 {2 ^ c

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

* C* Y; O \+ Q
* j. j' [" g0 E, b; k. V e% C7 {
* I8 I _4 M7 x. [2 p

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

5 x) s) U$ A3 w
) |- U" ^# T# {2 b$ J. D
& T) _6 O$ q% U! X

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

& [' N9 J0 |$ u6 d9 d; D
+ G& g% N% z" [7 D& `3 k( O
" x8 q# T. Q9 V7 c6 Q

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

4 G- ?% t4 ^0 R+ c% R+ T9 a) p7 o
" H+ ?. l/ ]. g* Q# k2 ?# P9 H
) Q) M8 V8 d; F# J, Z

h+=0.15 设置色相

k& ?3 W, L8 r3 k4 k
8 e8 p; p7 b8 a! k
& A1 H! Y) \% k0 j. J

t.ht() 隐藏画图

/ o2 P$ f+ \$ J- C1 r- [: D
5 I& ?8 U: M' d0 @7 @
7 ~- J6 Y* S: Y, U& g

tu.done() 结束

% H( F1 x5 @: b8 h/ i
& O5 \) \' x- l! U( Y
# y# Y) T8 o( ?8 i1 c# A7 T: t
; c+ W5 x4 h+ y5 I4 a2 @
* P$ \; L' F& d* P- ^ Z. J( X
& ?) s0 s& J) _/ O {4 S* F! T

源码如下:

& @+ V- a1 W; F2 |3 B' A
1 A# N% ^, j1 c" X
; K7 R/ m; ~" j" D; _8 F6 a+ N

import turtle as tu

6 R3 x2 _. ?8 a/ G- ^3 v- k+ `
% N- O, K4 I k
9 c% `6 `( t) Z' j' u

import colorsys

- b3 m& x& b: x
: W6 T/ M) G2 H6 \9 f
: Y3 F/ F3 _; p$ U9 @( }$ g8 N. E

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

/ O+ z& x q; @4 k5 U& n
& i E) @/ ]# N6 l( w* ?5 Z7 U
9 U4 e8 s \- M8 ?

t=tu.Turtle()

6 x( U' o$ `4 |& Q4 Y
" b# d0 d; H# E4 L+ Y7 w- z. z
, A9 v- s7 _9 P4 _

h=0.3

5 w8 ^( u7 S4 X/ [7 F9 ` e
/ A \6 i& z( P. e
. ]1 S$ j6 C# u5 w

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

7 g: c% L% ^& B8 C0 u3 T
' t! I- P) Z9 p# \4 t) e5 G3 e
$ k/ D: { d) [4 ?

t.seth(ang)

, [/ j- h2 [% ?6 y9 L$ N+ C
) ?) C' k. z1 H% {
( J* J5 S5 o0 k, g1 S

t.fillcolor(cl)

& j5 q! b) r& A+ a. J( _
/ W7 V8 y1 l3 l9 k& g& ~; z5 P
- c: @; Q3 G. M+ G2 S/ m" V

t.begin_fill()

, e3 Z3 U3 H. L7 d( A! X
" D6 a; L, a7 h0 U: Q( P" C
4 x6 h# J, _, r8 M

t.forward(len)

3 Y& S1 m( S# i( W' _
% d$ }* r+ x% m, N# y( M
$ ^ |: G$ o5 y6 |, h

t.seth(60+ang)

& r6 H' d5 R0 ^5 N2 \
8 e6 u; C3 e% h4 o
" M+ E* C) Y' k) z

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

( Q4 |9 y# y" r; K+ g: i
* T* X. w6 X% a
+ n; [0 D( Y' ~7 P8 f3 [

t.seth(150+ang)

. u6 T1 I) |3 [- ~. C1 h0 k- d K! z
! t |4 y+ w5 K/ a2 ^$ t
# V# P1 e! B% n" f* z

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

# B2 G$ B* D3 v( u/ ]
" {' }. U9 i6 y# W/ W* ^
( D( ~: H4 K4 Z& \) Z8 h1 t2 w5 f

t.seth(210+ang)

% K% K6 J e. F5 ]' R) T
# i8 Y( R) b1 Q# f
7 Y! I1 M' g7 Z! d& ]8 v: P+ |

t.forward(len)

6 F. H+ Y: J( ~, F$ r
5 L; c" O: u* {2 {+ S0 F2 | B
8 o% F: s1 O4 N% i# M7 q/ L# }

t.end_fill

/ M6 L2 N. N+ \" `& \9 a8 ]
1 ^( t. B- ^: P& D
/ g3 M0 _3 S) K8 M. f! i: P; X+ m

t.fillcolor(c)

, x) m) ^3 C; S$ Z. h
) v: X; x' ?* e8 G" Q
2 q( i6 O- L- U4 o3 c

t.begin_fill()

/ k0 u5 w t2 f. D% h
5 w4 T1 J) J8 K5 S0 t5 V1 N5 w! C
0 ^, @' b5 F3 q7 G

t.seth(ang+0.01)

- [) w, [: J1 e
" P4 C. [$ ]: j4 V: t2 P/ N6 c
6 n2 `1 K& h+ V" ?+ J4 Z0 I

t.forward(len/2)

- x6 U1 x( s% M6 q1 e( y
" A2 T/ l q- @, S) C
- x) U% Z+ }4 d+ T( S

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

: [% B |; z7 c, ?5 }
/ u* F9 x/ ~! u
" B- |( _" F" b0 ?! Y& K

t.seth(30+ang)

% l$ w% i3 j* ~% ]$ k' d
' z2 K: i* a0 x) G
2 h; ]7 j/ S, o( M# D) m" i- x

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

% ~; [( X, {. a3 {
9 O5 b) @3 Q& ^" V7 F
8 z/ f4 W6 f: `# s# |, L

t.forward(len/2)

, r3 V* n6 v# S( a5 v# S R* _
4 K/ ?4 A3 l$ o# @% y
( n0 s- t d x( Q+ C2 m

t.end_fill()

3 u" D0 T3 p0 g' U/ T' i
; ]- U* k: q N! J' P
: Y7 [! h& e1 q# J8 b+ m0 f2 D5 `) r* E

for i in range(12):

* V- L. R8 }6 k
5 N3 C4 Y& P) X) J% {2 L
8 U% j! }5 a+ \% n0 d% v% w

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

$ a' N. Y" n' j) `/ n, ]
! G0 c" I3 ^% ]9 w4 A$ `
' I3 {. Z6 G* v

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

! f9 W' f7 b8 Z$ o2 n% Q
* q y! H1 r0 Z v& r. w+ i' b
9 Y/ O% V @( `! `+ J T" ]

t.pencolor(c)

& r- y! e9 |/ t+ U; U2 w
/ w5 \) A, n9 ]( }8 X! j
& j" H; @: P/ o) d

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

' ]8 _! e' F6 j
, \: a6 P6 C E0 o4 I
3 U1 _/ @& O; c" _& u; D# w9 \& }

h+=0.15

. p) o6 p# V% H" [
' L: Y( m& C7 h, J, {9 H1 v i
+ f) y2 C; i( g2 E9 m/ j5 [

t.ht()

1 |9 Y |3 B4 R6 O
4 F" ^3 ?2 Q+ N
9 C( [7 Z; N# G [: i1 Y

tu.done()

8 ]. m L/ h/ \- H/ H/ {- m
( P. V8 g6 t6 D
; L9 p8 U, x5 P; j1 d. ~" q# G
. m8 H- @. V; c4 b
1 v( e/ w p& p) C7 _# |
8 s& L m" j: G+ Y" ?% n. u) h
举报/反馈
% l4 | g. d( r+ m0 p# W
) \5 u7 h) ?9 [; u* K% A k ( L' T6 `/ Y4 q2 X7 l! W2 e3 L( A! x, V4 G. F - b1 n8 \' |6 \8 N! ~! C5 A$ L 5 D- { m3 H' } r7 j; Y% G# ]$ k
回复

举报 使用道具

相关帖子

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