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

[复制链接]
* c. O- D/ R4 i4 Y; p$ x( k5 b
& `3 N1 h6 i k# {, e
F9 I& @8 X4 z# N' i+ s
" w2 L3 Y/ P! X, `& u8 z4 r% w
01:39
5 B5 e$ k. l# Q
. h) B8 R2 I I
, X6 a8 {9 @8 @4 t2 f: c
1 L0 X+ t1 k% ^0 P, c
1 u& Q/ g) ~8 Z7 J' a1 u! ~2 B

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

& `( A* E( l+ L, R
1 f" o& y4 `/ r
$ L) l- r4 J' o3 w3 }6 G! O
用python画漂亮的类似七巧板图形
4 |" Q" z% o# `* r
0 W7 U" h5 [" v. y/ L ^4 d
4 [* |1 x3 y+ |- V: _6 J

import turtle as tu 调用turtle库

9 b% g4 M4 j8 m% l
3 c# c# t! V, t# K
1 h7 x7 E. I2 x5 A; k9 \

import colorsys 调用颜色

! D7 Z/ u3 I+ u" Z
0 c1 p& E$ ~* [0 P8 A( m) i
$ B$ w* S2 S' p% o

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

$ j8 [# \5 u1 k. q2 X
% z7 F) n2 i) ]! X% m/ d5 z& p3 Q
+ @) j) W5 l3 e9 G

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

: _! C7 L& G6 _- n# H8 o6 D( l
( @1 C; z0 n9 I/ M; X
( ^2 H6 A' k2 o0 l3 Y0 P

h=0.3 设置色相

4 ^( S4 t7 ]5 s0 z% J
5 [8 i3 \; ]$ ^% C
# l# q6 K" I7 b6 G( I# \

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

. v- d' ?* l- o L2 a( C1 i3 t8 Y
9 ?4 V! y5 {$ e5 N2 c! L8 J
7 S, V3 B/ Y) U

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

) I0 X) y5 w6 W9 b" c4 ~7 t' M- w
' Q7 E* v5 U; ~) g7 o0 s; _7 x
6 [ \: |) c# {) y

t.fillcolor(cl) 填充颜色

3 q8 |. o6 V E( U) G3 V, c' I3 f
5 k$ f$ j) J; g2 S, @, H7 K
! k# a9 Q1 [: x& {2 q

t.begin_fill() 开始填充

) K, p* b4 O1 H+ ~) t- s
3 o& a# E5 Z# U' f; J# y
7 F, V8 y& D: Z8 Y7 n4 {. `0 R

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

9 H! ~* g! _. t4 {( n) S) f% {
6 E: |+ J) r5 ^$ I) U/ }4 G4 y
! j/ ?3 v/ w& D, V% W

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

; O& A1 D+ \7 t! n: H
3 e9 i: C7 }3 F, g* n
]+ ]" ^0 T/ P6 i' h6 b- [

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

8 A/ d+ @; o7 ^" x3 w
4 ?; o5 L8 s: d# x% Q! Z2 B
: |" K+ h/ z2 j; f# x M: e' X

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

2 c7 j/ w0 S5 v8 R+ o; o) w5 }6 ^# z
9 A* j7 V0 b" `1 _+ C/ u" y; e
/ B! W, U; i( d/ U( N E

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

2 |, g8 k+ R9 T4 C. @! t( B6 U
5 O% |3 b7 g# b- ^
# K h) N1 {! h% _2 W2 p- `

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

6 R( z6 g% ?+ {- u7 h
% [+ |( W% ~6 g7 J" x
6 ~( g0 g9 J( l4 h

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

" Z* z" W0 z8 i1 d. \3 ?! Z
" m1 I% R* Z; j: v, W2 u: i7 i& b' V
, Y4 Q8 ?( u1 g9 Z

t.end_fill 结束填充

) m. T! Z3 p% ]. p- j0 k# W
$ J" X+ K( X J3 I5 p
5 v7 V. t) Y2 H3 G, |% u, B( C

t.fillcolor(c) 填充颜色

/ y9 ]3 ^/ o. Q1 J N! c/ y" f
, U) G( G3 O/ v2 r+ o
; [& m* ?/ {7 D' b+ e0 ~* D! x9 N

t.begin_fill() 开始填充

5 L( ? `4 m0 R4 A, T, s
" a5 ~6 S* D3 g, h* E+ E
2 o( Y/ N% Z, `, p( n3 l, X. P+ L

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

4 F! Z! Y+ L i" n- @4 ^
6 L) P4 _; z, @7 I0 K# k. f
. F/ Q$ O0 x' G# q# a

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

4 ~5 r* P3 m9 y1 g+ x
5 \9 |4 V7 {/ l
: R: T$ n3 h8 v8 S- }! p0 V5 }8 l

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

8 P8 j9 ]; h* [! G& |' q) k& w
3 P0 A4 p% q; Z3 R% Z6 W D/ [3 @; v
5 F b+ A8 W8 \8 E$ P$ H+ I

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

8 P! g' Y0 w, g6 [! z/ z5 S
- A7 u- W7 h6 S, V7 B& t
% s) s, `. o t( z+ _

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

( C" e. Z! ] X; N p/ S: c4 \
' w7 e' q3 p8 K* H4 j+ c
# q; k. [4 H# }! r% `: W/ h

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

7 I3 O' R% E* H# ?, n" F$ N$ Q& f
a7 C. j2 c- g+ T
9 p/ J' e% H+ ]% S4 [

t.end_fill() 结束填充

0 X2 Y3 g" m, i" O" x9 u3 T
) T; g1 b( R( { a( ]
. d8 a( z6 j! y. Z, N' i) n( T

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

6 j4 h7 o6 v5 |& C; h4 {
8 ^% q, g9 _$ z/ b4 |* c
2 |: I8 u% z" m1 q5 K

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

, c5 i0 d/ Y9 j
' l( n" m" z1 U
$ a# n4 H7 h# V

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

$ ?0 D( ] f$ z! c
9 t/ r9 {- p* m/ M6 K6 t8 Z4 [! y
6 `2 n) b) o. [ ~( }

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

c3 T- F5 H4 o3 [" P
+ e; d2 v2 X- C) M' |$ Y
3 j5 J1 \# F& Y1 q2 h# S

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

" l: p; d2 t. r5 @
) { k8 G8 c5 ~8 u3 v. ?: \9 e, |
. S/ X* ^5 e/ O- ~5 \9 S3 G6 r

h+=0.15 设置色相

' A" f- H6 P2 H, N2 h' e
& ^! x$ Q' ?& D% E: i0 _
' P r$ M* k; [, q, d( H3 A

t.ht() 隐藏画图

) m( m y. x8 G* O! }' N1 t2 g3 R% I6 M4 y
% U; L/ p0 G* b5 r6 `6 _
" x( h# p0 I Y2 @8 |$ o) z$ z; k

tu.done() 结束

1 k( D/ u* x+ L3 k$ [9 {
- E A6 U+ t$ ]! Y: R! U2 L3 P
1 T8 a- ^. U; g2 ]1 C2 E
# B$ {' Y0 j1 n7 N
* v; z7 |5 [: h& |8 X. P4 U7 k2 X
0 ?- Q+ z& {: \" A0 r Z. z) r. z

源码如下:

, u8 F9 e6 [ V r1 N" G
; n r6 C9 F9 g4 H
% E" P1 S, O$ a6 ?! }, B- f

import turtle as tu

( v; |( d. H/ V6 m
9 |: A9 @3 ~- J# N0 k2 A+ m
2 l- f9 R: E' ~/ b: L0 ~0 v

import colorsys

/ a( w+ F: @7 N2 |! r6 L
$ y0 r! P ]7 c
4 s6 y6 E; g& r( z- Y8 j* y

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

6 E9 t) r# J; r( W# Z
8 y" p7 J4 k- Q
! n: P+ ~! k$ C, F& K) R2 ~; G

t=tu.Turtle()

# [, ~* ?. z0 e( o
) X- `& b% z/ t- X2 p
) s( u6 Z& y! p

h=0.3

! j) _% l5 i9 W3 U. A5 p
" {! G& i1 d' E& w! i; Y9 y2 I$ j
: N- ~- x9 j9 X6 J0 H: T# x; o

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

- b7 u" x: Z- e. d3 r5 p
3 @- j+ o2 r3 q/ I( p
6 p# y+ T, o. Z; i$ b. z' l2 Q

t.seth(ang)

) V- t, t& ^2 `# o! h1 O" [: g2 x
; J3 L+ G# t' R$ h0 Q
1 E' n. x: x& |3 C/ j8 {$ `

t.fillcolor(cl)

) Z; l( c+ m6 t( G+ q! k" X; w; x
9 E. Q/ W: P& y. y
0 [2 h2 M' P. f$ j

t.begin_fill()

# ]- a+ g: A9 \: j
2 A9 x. B, K8 r! h
; V5 r8 S) o$ {- Y' g! |# X

t.forward(len)

1 I9 `$ ]2 x, u' M/ C
: _, N3 }, C* y' \
1 p& e" l( v9 q; }! v

t.seth(60+ang)

+ W* G, ?' J% t+ g
. G3 }4 O% x: {# E6 |( ^ Q: R
- z, A% K" z& E6 o

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

2 `* }3 q" k8 l0 K
& S7 k+ Z2 F; A$ F7 x! B
2 n8 u# ~' ?* a/ U5 h

t.seth(150+ang)

9 u" U- j4 \/ I' ]0 Q
6 a2 p( a" x; J6 p, N+ B
8 c1 ^( a1 B' w: }9 N" g

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

5 w, m( }8 h) A+ T' J4 \+ o
* z8 E) w" f7 |/ a+ K2 w8 p2 H5 D$ }
, w" j/ E2 \! Y

t.seth(210+ang)

6 j8 o) l1 g M% h2 R: J
0 s+ p. T( Z$ n4 l" f
) G2 x6 F; Z4 x$ |( p* E7 f+ Y5 c

t.forward(len)

) v z4 J& ], Z$ j% O7 L3 _7 `/ z
4 i# J4 q/ K$ y2 [
9 E7 C! I* U, l7 I9 K- C

t.end_fill

9 ?2 b& s1 S; J9 n
2 D& k {, g6 I& h" _! ?
) m( ^ u I; X, F/ s! ?1 s

t.fillcolor(c)

4 i, G0 z& g4 Z- R
6 b# Z# d3 H/ D9 s9 t* B6 I
8 m& S( g* d9 |9 w

t.begin_fill()

4 v& `( Y# q1 l w. z* M
~! f% X) |6 ~' v8 e6 ]. \% e* d
: R* j9 d3 B5 Y# ~; k0 P

t.seth(ang+0.01)

: t) }# n. \1 n ^1 I/ y8 U% t
8 J4 y/ s" z2 ?6 r0 C
+ L1 W: w' K# z" b. s: k( Z

t.forward(len/2)

7 z( o" J5 y+ X7 ?+ H5 z& P& B% Z/ v
8 M; U4 p) `( b* o2 Q b8 \
3 h$ ?9 s# O. x. r

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

& b5 F7 B+ m) s O( f
( C& B: j$ A2 L' y9 K& s* j& D9 Y
6 }1 i* u8 D- o* B

t.seth(30+ang)

% t+ }& E+ L7 I; S
! E+ j! I- z$ `. w. {; {9 H( F
/ `2 q4 W) J W8 _& H4 G( e, F* q

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

9 J2 H8 ^7 g* |6 b, m
\! x/ v( n0 D; n- b" N
, O3 p* k0 ?/ c/ {9 I( O

t.forward(len/2)

) D- b2 t% {3 X( \9 U% B) F
. a: Z$ O2 d8 A9 o
8 C" Q( _: Q, l

t.end_fill()

) e2 S1 K7 f$ [4 u( s4 I, I7 d. L
8 t4 K! M7 x3 U4 u7 }; s' z
, {& N& b! Q8 r: j3 w8 |

for i in range(12):

K# q+ H0 {7 ?) Y
2 G4 Z5 Q% A* X+ S: A7 ]# S
* T/ D- W' o/ t8 b3 g& N

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

7 Y$ D' s* ~; K' w3 x9 q6 ]4 X
$ d. F, v$ h3 e, t' R( ?5 d
; ]. |+ j( y! [6 B: [

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

! `+ e) J- h- I6 H! Z" u
$ l2 @+ D! l# z9 x. g2 A
$ Z" Q1 j) ?3 |# c7 R

t.pencolor(c)

% C. j) ~# O+ U
% d2 K: j" h& T+ S% b5 P- L
9 g8 G& l: ~7 Y5 u: n# n6 l

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

( E* E! l6 r; h7 v0 T4 O
8 a( g; V- M+ W. Y* w; d
$ D3 k; k$ l7 K- ^/ X# Z

h+=0.15

, k, p6 j( M- t$ G7 V. V9 H7 }5 Y
/ t/ O B6 c! \$ |% _+ h: b
) @. J8 N9 K7 G7 M! O8 N

t.ht()

% n/ k8 j: L3 n0 D/ b+ \- c; d0 V
% v- p% y4 L$ t# T0 }9 h$ R
+ D7 a7 H' k+ Z" H F3 D/ B

tu.done()

0 B5 r' l4 v2 o
+ e5 G5 \; |( B; Y
# v( H$ f; Z; E, R% J
5 Q$ P1 `9 [" n
2 H: P9 Z7 T! a" N4 _* @
2 [: g. C2 J7 Y& b5 l7 d9 a
举报/反馈
1 J; @* x4 o& g1 n9 s# C! G& X
: V0 j; @2 ^. ]9 M 1 l4 N0 H% T' H) n( F P* n7 ~3 S5 k. f( g' [" l' l 1 O* H# r2 @* m* h % B6 J% ~6 K' N0 A: i( z
回复

举报 使用道具

相关帖子

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