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

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

[复制链接]
& M% K' }7 ~, h" \( N
5 n) l- r; p7 m; d! s
/ F% S. c: G6 H* B( i, U2 b& \
+ A2 F( `7 R/ z. `
01:39
: O9 p! ?+ A" m8 n- L( g8 h! v2 ]
" C% ~* H$ ^. o+ c. I1 F. ^/ R n+ y
& x$ O# w, @' s- ?, p) }! ] @, T h
4 E1 [) W i2 |$ K, K
' J! k. {2 }! K. S0 J; Y3 R! t$ v* P

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

( C- L- ~7 N: n0 \$ z1 W4 D( K
' P, E6 l# N1 X: T; Y% l& ~
/ P) X1 n1 W& w2 Z
用python画漂亮的类似七巧板图形
$ F. t9 Z% l$ q
) f" ~. k6 m3 J3 e4 X( }* ~3 c
- H. ^8 M S$ `1 D+ f0 F

import turtle as tu 调用turtle库

9 Y! v0 S. C+ |( m8 _
X4 G2 ]) Y. G
6 A. u G, t9 J" K2 Z

import colorsys 调用颜色

2 D; D% {, @7 q
% B. [7 B# n7 i9 u. S0 k
9 |* y6 ^+ |6 G4 t4 J+ ^' p

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

0 y& j- C& @* W6 N
9 ]* \! x' n& D( \/ C7 B
9 E/ `7 I$ z# h) A; a# w4 C

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

4 V8 l) J! e( t( j, ]8 W
: k5 j% [8 e- h& b9 W
. N" M) Z: e& v( ]( o2 c6 |

h=0.3 设置色相

. m6 p9 R. {7 g6 s
$ E) `: V' k' _& q. K' |
0 J% {. m) h4 T1 h

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

5 w% W0 U7 i' o$ ~- j) m/ `
' Y- R2 S6 n2 u C, N7 V; y$ n, s
" M1 b4 u* G' I* Q2 _/ M

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

' a% A4 @3 i& t3 X% Y6 z* i
; H& ]: m4 f" P% a2 z* w8 Q
- G% v I( `) s9 ]# @

t.fillcolor(cl) 填充颜色

! M6 a3 b, x/ ?: c0 _6 J
3 A( A$ C, Z' W$ D% i) l' Q" m
5 k8 ^; Q. p3 D+ s C7 ^/ X

t.begin_fill() 开始填充

, ] x' K+ x- ?% V9 ?
( x& m0 x3 E9 g
& c& C5 i3 \! b6 U) e+ ?. z/ Z

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

: ]6 C& o" q* t- h. L6 e8 w o
( N0 L$ @. A1 c. j9 x$ Y2 c4 C. L
8 D* }8 F1 Q0 s6 o, U+ w1 _

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

2 Q) D2 }# R k* ~( Q6 U% R
5 v0 @! [& f# S* I- e
* j1 _ g' `4 `/ H/ N

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

! h3 Y- c& z% M% ?' p; P
1 g6 h d& g: @9 V7 @
7 p' X2 v/ h& |2 e) E5 b7 C

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

$ n+ j `# L( J
, P. x/ K: C9 B
2 G. l5 | f5 t, Z& e2 V, W

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

# _0 k1 V9 W- j
$ u9 n0 d6 z! j# b) W1 V
+ K* E! B$ D, ]: W* t1 p

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

6 c9 G$ y0 t3 q: u+ B' N
. V0 T' K9 F7 O$ @- B
4 X5 Q" ~. i# }0 ~# n; X8 K" r

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

" R) Y! x8 U1 P9 P! T1 ^- \' r2 [9 i; r
* `0 N. Y6 q* ?4 X: F
1 A$ Z) ` \, Q- o/ F* @; e5 F

t.end_fill 结束填充

9 r1 Z& a' o- @: c, c$ A& X& l
1 t: j m* k9 r- |& M( n4 N! F
" m% `* }( l5 |; L" R8 f

t.fillcolor(c) 填充颜色

* ]" _/ X" }0 F3 n8 V( O. S
9 M2 ~8 Y4 T; ?( d, u
) e: ^- z; |$ u0 Q0 l

t.begin_fill() 开始填充

8 @7 i7 e0 O+ t* Z( E$ I: p
6 B8 Q8 z$ b6 L1 S9 R7 a- J
% K% {# k0 V J9 D

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

: M5 m% P9 `; D' _8 s
$ z, t, c" W" E; h
" P* r- W* y, `4 l

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

% V' N$ f) S! t: j1 b
0 D1 A# s* d# v" j6 S
W- J. c$ n# Y' N0 H

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

! S: N' M8 T3 N% k
- u# p8 `2 D7 Q! H6 x; ]$ w
) X$ q4 H* [3 b

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

; B+ J- ~$ t; V! Q# {3 K3 U
) ~* A6 u6 l* T0 k; r3 V% I, F
% C/ d* k% k0 U4 w% p% _* @ t

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

^, o. m1 I! S# t9 Q4 O* c! g
; m. g; c5 P( O, ? k
& X( \( b( v" F

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

: i- a7 G( s# @9 F7 ^9 }
`8 C! B) B9 A
( {3 G2 ]8 f5 Y

t.end_fill() 结束填充

2 D6 s4 l/ X6 F
9 T8 ?) z3 Q# T
- b$ P o2 v! R/ {

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

) C, U. [1 m% W8 v
5 ?) _4 E$ r# W, c& u# {
' z4 I! i) ~' h9 i( t5 w% L

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

4 L; E" ^5 B: x. U1 u6 `
' P0 ^. k1 l v, X1 M
; d; F! Q) M+ M7 ^2 c H- h. O

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

# V" X9 ^: M4 Y: N3 `6 {. @
+ d% c+ D& u, P4 T2 N; A
& `- @9 M" h" s

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

7 F& r: N/ i, E6 t! l" b
5 m% m& ^/ x6 P% w
, k1 Z5 i! ~1 B/ l0 Q$ Z9 h A

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

3 S7 U; P8 y! J% U: k, }
1 d m {; Q+ r- {
: E: V! v) g+ A9 G

h+=0.15 设置色相

! s5 U8 B" X$ P7 Z9 F
j8 |0 }3 V# R- [. Q/ [: g
. W3 o$ ^$ f- L' n0 L

t.ht() 隐藏画图

: ^2 r: O: l1 e) W
2 m8 `2 h" ?1 X: [
; k0 R4 V( n1 T$ c

tu.done() 结束

- y J2 e) f$ `; A
+ q! S$ n- u" n. Z% O8 y, r
; ?" L/ B4 w8 x7 n) S$ B& m
4 F; w) ?% s/ U! Z4 L+ U9 B
4 X5 j/ Q0 c& y! A0 u4 b% m5 d/ F
* u6 s6 ~/ {1 ~0 u

源码如下:

: }- F* N: y% h7 ?, r+ e
4 b# D& ] Z+ _# o& G
+ @- a X7 i% i5 x% g; {7 `7 q

import turtle as tu

- }9 H( y" P$ J( A$ ^/ M
% ` [# Z' `8 [
2 [5 |# r( B; z1 O" E6 Z- C

import colorsys

5 y) M0 q i* [2 }& T* l Q
+ w' Z, L! k7 {2 ~: t
4 [ O$ V8 x' w( A

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

2 ~0 i# S$ l: } r. \
9 u: I) k% r7 q+ ?
$ g) ^+ N5 t. K( F4 `: a# \2 O# E

t=tu.Turtle()

! s4 C9 j- S4 F4 @2 z& `7 u% c# [
" U1 S* Z: Y: {3 _$ g
1 A' J5 X/ ]+ l6 |# c1 y3 M8 R

h=0.3

' _7 J$ I& v4 o3 O5 |$ V
. o |5 K/ U( ?9 E1 [1 F7 N
+ ]4 ?1 g* T6 U4 w! `- | P

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

" O+ E7 R. x- B6 M$ v& z
u) \( g) |5 x
. Z }) A: `7 z+ a$ r6 ]2 `

t.seth(ang)

& N- c5 Y5 e/ R! }# \. F7 q
& m, Q8 G% R. n* A. Y
5 T* ~9 k1 t6 W6 g* K: y8 n

t.fillcolor(cl)

; K9 F5 \8 j2 V# X
9 b9 B9 b% D% {) K% o+ a
8 d. G" w f$ r

t.begin_fill()

3 O6 {1 {, v: ]" E2 G+ h$ q3 `
5 u4 x- {% Z% N8 y" T
2 U: b( m2 v: H- D+ G4 q' G$ ^

t.forward(len)

% g9 {4 i* n! X( V: P
0 j! k3 T) v, E' Z B% K6 X
2 J% G& T( O; V6 r3 `% p

t.seth(60+ang)

) V6 \2 T2 P( O, B
`# B& l! a! b! a! g! e
# t% I. p/ H& s2 d L8 R; R

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

. Q" p5 T5 d5 V# l; _
. Q7 ]8 Y+ Q# S* _/ B& h. F7 h! l/ g
0 p4 ^2 J6 O( Y' G

t.seth(150+ang)

# t; V+ L; ~' F$ I
8 C* s: L* c( K3 D; ?. i
' g$ z: ^5 v n: x

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

m" M( n. m2 u
' E' @9 g: ]- d
_5 M- M6 t4 Y

t.seth(210+ang)

. K4 q- X j1 {) p& j! |( b
' f, S: n8 l ?( T0 b" v, Q
W$ d' |/ m7 h# R% V/ J+ u

t.forward(len)

8 P( j2 e- Z" w X( t
% k$ p. @& n4 \( k1 X5 H! c8 X
9 {. o0 r; U% a4 V% t6 c: _7 q: w1 Q

t.end_fill

& |, y( e/ \' A& S1 z
' q; z0 X3 L: X! F3 i @" W) k: w5 ^
; D0 {% h8 d, `& w

t.fillcolor(c)

% B1 b$ f3 r: p; X2 x
- p6 u1 F0 z8 a. L; ^3 b
4 \9 d, s/ `2 x' Z

t.begin_fill()

2 D# }6 t3 J4 s! s7 y/ w
# v6 d: ~8 p9 a3 H! f
% [ ^) c# T* F1 Z" ]( z

t.seth(ang+0.01)

8 t8 B3 Q+ y; a6 M, o- X
, |# o& Y6 x- ?4 p
& e) b# p0 d6 o+ i! y

t.forward(len/2)

% M. w' |/ r5 m' U& F: D. T* }* a
, ~ E, H" ~% a4 |6 U! O1 U9 t' N
' o$ Q8 t0 q6 o! a' S

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

4 K4 K+ i% ?4 m0 N( M- h
( b! m: [1 V9 |' @- y
& q! ~ Q; D3 D5 S+ X( |6 J

t.seth(30+ang)

1 D. P; A5 _- p4 P' X9 f
, R3 ? q, s, b" ] D6 i
3 X/ \; E5 ^% f+ a& m! B

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

6 k, O7 s5 S I& n: e$ m
- \- j0 d. z& `/ N' r1 `
( f9 [$ J" J% o( u3 W

t.forward(len/2)

$ j& |$ `& w/ Q% J/ o
0 v4 c" ^+ Z- [) \; O) t' V
9 q! M9 Y4 M1 i r0 O. C

t.end_fill()

6 i# Z1 I9 M' U
1 o9 |3 B O6 {$ O
( t; F# p Z" ?. U) B4 p% V

for i in range(12):

3 Y: l% |) P5 t- `1 N: ~: n
4 V( Z. v3 H* {! E4 O
1 C: c2 g7 p" |4 v6 W4 d9 h

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

6 K' d! n5 F' @0 G, v+ J6 Z& u
) f: s* f1 U- h4 l( T
& r5 O# y/ W/ U& E3 D- N: B

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

$ {/ {: j9 c$ p6 ?% H+ h. n7 G# p
/ k7 U9 h' @) X9 C8 v! ~
- b* j) h. o7 D8 z) F" q E2 L! y

t.pencolor(c)

# s, G8 s+ \- t- h r
& _4 K* b; U Q1 D1 _$ J, ^5 _
9 e( y+ u! E4 W# t5 C, {

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

7 {6 I/ N- G' a0 Q
% w( A) i U7 J! f/ x9 e' ]
0 |" [: \) q$ l/ H, d! Z9 s. n% d

h+=0.15

9 F. C# g C8 E8 ^5 @
1 k/ h8 `# M! J# k
1 O& C+ n' @4 E, b$ S

t.ht()

; |7 E+ t; E W) {) E
6 w! h8 b( t; l7 o, z1 ]
$ y5 r/ |: v2 H0 z8 i4 G& K* q) G& {

tu.done()

( t" N" N* P) e5 i/ E0 ^% T
& @1 G: Q" y! F% u8 D+ h
' r- K" ]! K1 U- g+ S1 D
. E3 ?! _$ A$ S# n4 F
) R: I4 i$ R/ U( \5 i
( u& n3 e* ?! V4 U; `
举报/反馈
! l0 a l7 o, a# Q
6 z: x/ i6 [9 e; v* ?. }" k9 n* [) U4 s5 t* r, ] * S2 J2 m. R9 [# ?6 D" |, ?" Z/ i6 v& ^4 t3 `) ? 7 K7 B, u/ c9 n+ A
回复

举报 使用道具

相关帖子

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