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

[复制链接]
4 ~- \; ~0 \! x) p2 m
0 E1 |7 g2 C, R8 a" B
% e: m. ~: v3 g- H6 j3 F4 d8 R
% i W2 D, G% g" _8 [+ c7 E
01:39
: _* d7 Z1 C, {% d
, a4 X0 ]0 z) |
# N0 T; g) K2 r: j) }& }* c2 T
# u) S3 z" F8 ^8 \
- ~% j$ R; R& b

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

4 o) w8 o( m, g6 D
# q% {% h# u8 f) a6 |& W5 h7 n* @9 X
; t. e8 ]# y1 N6 \7 m$ @
用python画漂亮的类似七巧板图形
- ?. I6 E8 D9 _
4 m: O" x5 z7 f: `' V7 z3 ^
$ b2 D- H$ \; U" K8 K4 Z

import turtle as tu 调用turtle库

3 Q% V0 o9 Y9 H# K: O/ T8 _
# S4 D1 b# \2 s- Z
( K3 T4 m: ^, J3 n+ ~5 w. k

import colorsys 调用颜色

/ o/ ?5 C- X4 }* q
3 b* Q! z+ W8 ^( c3 A
2 l6 Q* g' C8 F8 h- K4 o1 u, m

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

& g8 d/ V$ d" f* Y8 C
- N+ @' I5 ]* a( x7 K
" E' c0 ?2 c1 O

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

' N) h' E3 [1 Z. G [
- j' ^* b! M0 N3 X; S
6 y: b. }# n3 u5 B# O+ I' d9 P: g

h=0.3 设置色相

8 ^ w/ f4 O* F0 I+ s
0 O6 Z/ N, F* q& W9 x3 N0 p! ~
( v5 S! B& r$ S

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

$ I' e! z- C R% {: m
& s4 Q. ^1 Q0 V3 L5 \( l
( U/ G" g, c" [( t" r u5 D5 r

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

: N6 y O# b* ~% J! z
% K& ?- P2 \; t6 b ~8 F
4 e) v: n6 L) l: x% e* B/ F. ]1 `

t.fillcolor(cl) 填充颜色

# k3 M F5 k- g# U5 _$ K7 b
" ?( m, _; E3 ]. K" h! S% Y5 N7 ?
7 G9 C! Q& N$ X& k

t.begin_fill() 开始填充

& j9 N* S2 A" {7 l
8 P' a9 k3 K, h/ ~& k7 g/ a" x2 o0 g
# @$ l9 G1 G8 j T5 J

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

, H8 ~3 w [" ]+ o0 E' D9 m$ D
7 f2 K& A5 }, Z3 y/ m. B
- f @& m! W% Z( Z5 }) O) f9 B

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

( ~' z4 X/ n4 s! {, ]
% D' K0 R }: p o9 }0 }
! X- Z5 k3 T7 X3 W( x2 u0 k

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

" b9 e1 r+ E# d+ N2 x: v# N- q
& o2 }& q$ M/ T1 k; Y5 j1 Z/ E- _
! ?# B# A N3 Z" x* L. h- o

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

$ g6 H6 g7 p6 H
% _2 D2 I2 q# k; K7 d8 b w
. S- h; a( _2 s% T4 y3 g

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

* ~9 Z# b9 l# R9 E0 p. [" `
' }7 l0 |4 j% b% T% \9 Z
5 ^( P3 C% Q$ S- H h! x

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

, o9 j, {& A7 d: s
# h3 ]* O+ g& n7 k" Y0 \9 ?. h2 b! Z
0 p5 ~+ u. p" h5 ~7 c# L

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

7 D' D/ v# K' \1 C( y- u5 [
% |# ` ]6 d$ o
' ^0 i) F6 v- ?, R1 T4 h

t.end_fill 结束填充

4 i9 m3 \! Z/ I a6 g; Q
# E! y6 \" l, E1 V P
d4 J" w: s& F/ ]% ^; ? ~

t.fillcolor(c) 填充颜色

: ?2 ?+ w+ W! T& q* S2 j
$ T/ \6 I& b% O/ Q
' a: z, _, Y9 X( E+ ]! i

t.begin_fill() 开始填充

2 [* W! n/ X3 x* A7 e; m
+ p& h3 D. }, b+ q% n
- ^8 i* K! I+ o% w5 `2 w+ ?4 _& F

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

( B9 B0 f6 M$ Y+ C! W$ C" M
3 d ~/ n- l- a6 l1 w2 U
) r2 }. }0 D1 M. B. q

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

" f2 d+ Y' B) r h
; c9 p [( J4 ]
# z$ o/ X2 |0 Y

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

4 e4 Z' o8 @( B3 z- M5 h k
3 G$ `" f( h9 q5 Q) n; \
) o/ d* @2 Y1 J$ w g

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

- n5 h0 m: m6 T+ g1 | \8 Q' w
( D9 K' @* i9 t
- n. ]$ O. |, d( |9 k5 C F/ X3 }3 v

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

6 q1 m' u/ z5 R. k
9 u, X/ F/ q3 Z. d/ i
6 M- P9 }$ z# w; A5 l, {

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

: [) u, S; M+ ^% U0 a/ m
. D5 e0 \$ T) {: p( u; Y: S
1 z9 o. e X' E* J; H6 w$ z/ a) b

t.end_fill() 结束填充

: l* [2 a9 u! U9 ?+ {- i! v4 _9 ?
, ]9 p+ D, ^- i |! Z# d3 g
. H1 c9 r( M, H/ }5 c, x+ n- w; Z- W$ l

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

5 O6 q% J1 X2 x/ b8 X' n- c
, ?: `' `7 }# l1 N: L7 j, e+ G
2 E/ c+ c7 F5 W$ f

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

: j9 d* Y' X! b3 n
( o& x9 [4 R5 K: n+ j2 W
8 d! d" O+ W( V5 i$ V3 A

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

/ t" f- z" ?8 h. O/ ^
- o. |3 _4 E. y; z3 N I
/ }! o1 Y% N7 u2 {) X* o* _4 M

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

) R/ ], F6 R, c$ I; Z
9 z* d' m! H4 Z' k
/ v3 b# R6 L7 C; S

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

# A% t, d( u+ p0 [2 O
1 ]+ ?# P J5 T* I# I
$ Z$ T0 Z, D" E. }9 E: P

h+=0.15 设置色相

: \# Y n+ N5 f5 V
! L; Z% F+ D$ y9 j0 w4 e6 [4 t( F
7 i: {8 E) ?+ y+ L3 \

t.ht() 隐藏画图

~( t9 u' ]2 O: y7 ~) I- l8 h2 L
+ R# H; u& A3 j) [
" K& n e6 Z* |. c4 ?! R; k

tu.done() 结束

5 H0 t- _9 m- Q# a" a$ p5 `
& N( t! Z, x8 I( n6 ^6 N
. l1 K. \5 u0 @& ~, V
3 T c1 ]9 d, i& ]; @
0 _1 l& y1 Q, J3 J7 g& X6 C/ Y+ x+ X: r
T8 w4 N9 q" X4 U7 I) |4 f

源码如下:

( A- P$ D- n) ~
6 B; ?8 W5 x5 W5 E( X, M
4 x1 z2 T1 d3 x( j+ i+ S9 {% Q

import turtle as tu

% M; A/ b' S0 U6 r; A& J }+ g
; U' r+ Y0 n$ i5 G& X
- p0 w. ~, y5 ~; M

import colorsys

6 _# ~- f) I% W/ J. h/ h
* Q0 k3 n8 O$ S/ U( d
5 }3 h1 _+ `% p& l( ?+ k

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

9 U! J' f T, ?3 E0 f9 u4 ^
. \; l" G$ f& d# [( m
: H# e5 `3 y, {! a( Q+ M2 `5 I

t=tu.Turtle()

' [# j8 W- s4 p; K7 l' q) `$ `- ~
2 O. V4 h0 x) v/ Z
6 Y" v* n4 t @7 y

h=0.3

$ L. |- Y% d f+ `: P0 `
0 P ?6 {2 V9 h2 ^8 U
4 |4 ~5 F/ g0 E H5 U! w( P/ f

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

. ?# U8 A1 h O5 Q
3 ?2 E1 c: p' i: m) e+ ]
' b! m8 ^" l- u

t.seth(ang)

3 l# H( ?6 x/ B5 u
0 z3 ~5 z! ^5 S4 R' y
3 y# ?+ ~5 ^0 u) H7 _

t.fillcolor(cl)

" ]1 j! B9 i6 {$ v8 F
+ [4 j2 ^4 o& S1 t- H, P, B
4 h4 F9 p) u% a

t.begin_fill()

+ S6 U' A; g/ m+ I
" N/ @& Z+ g4 l+ J7 F* a$ }
/ y4 C8 K6 o& l0 K/ e

t.forward(len)

$ d4 J+ k+ t9 t7 R* B5 w
/ g: I, M7 ~7 v
- i0 P5 m. j5 |- G8 `1 K0 A$ Q

t.seth(60+ang)

9 _$ U4 ]$ ^' [/ ~' F6 Q
9 z: s# I9 I: |4 {' B$ u' p i f& w
* F2 u0 M* e5 M7 A% o6 E8 z5 u

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

9 X3 M6 y$ i8 V( H7 Z6 o& C
2 P2 P- |* O. C; q$ ]+ W
$ I+ i5 |: o1 {& r

t.seth(150+ang)

) d2 P2 {/ U" @" L g7 p
% a5 Z9 R6 r9 h2 w: w- O
$ z0 {; e" T' p1 N

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

4 @$ ]* _# H2 E4 v
' m+ p' S* H/ W9 f
8 V: j/ b- k7 _

t.seth(210+ang)

, m( h+ C+ o4 M0 ^8 J% i
1 i9 d3 \/ u" ~( Q( c# [; p
2 \" k2 m4 H3 L( {6 ?

t.forward(len)

$ [; M/ B1 ?1 N
7 }, n- G3 v5 [+ \! L* w
5 T/ U. j! J/ v1 B- D: Q( r8 _8 c

t.end_fill

4 D' j* t7 O. W
1 q( V, w( m; P: F) f0 S
+ R/ X Q' v c' ]* ~6 y* h

t.fillcolor(c)

5 W- F7 O8 q, d$ W
1 R! N/ i' D$ Z; j+ ~
2 c6 x$ `" i, X" m5 v0 @

t.begin_fill()

, R" Q& e! B. n5 i
6 ~. K8 k. n. s+ j& F. e$ n+ p
. C$ t; Y; i1 W; A8 W! p

t.seth(ang+0.01)

0 D( L7 o7 X3 N
3 e; M* K8 N8 ~& B/ N' R1 k" h
+ S) |( d% {; V' X3 ]

t.forward(len/2)

& t9 U D& C. l% P
9 q$ B) s2 J2 m$ @9 a
% U, x5 f* f# V3 G

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

2 o1 X7 {9 |9 m4 e- T" f2 C z
8 ~& Q& A2 {6 k2 J
, }8 b6 `5 a. p, z4 |6 e& {

t.seth(30+ang)

$ ]* {$ d0 p, m& Z! W
! H1 z* _0 N. C! D& Y5 R( Z4 e
$ m+ d* v1 ?% C+ q

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

3 n' b% |1 B4 N- v- o7 n# Y
, s/ S% K7 q9 j" B9 I6 S# z0 Z
0 G; w3 \+ t1 k7 ~) \

t.forward(len/2)

9 m# R, T2 Z0 T9 R0 F
3 F( u/ D2 W% ~& X6 ~2 u& Y
: v x0 D- B3 o; z8 O" o( C

t.end_fill()

: g- y* Z% F! s% H! u
2 `9 m9 m- ^9 ~% M& t
8 v$ u7 Z5 P' K/ A! ?8 `$ y

for i in range(12):

. v, L% l+ J( S G* ~$ h
- T4 d( ?/ o/ ~/ `7 _) o
7 y6 p. o5 u& w; n" p+ z2 s

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

& `. b4 ]3 O* w5 o) l
. I) |2 E' N; U q# Z
# D' J* ~5 R. X3 g2 ~7 Q

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

" P2 i8 o% j- y' S% w* M! Y
# h U. i1 |6 B$ a0 ^3 T7 e4 f
+ H7 [. X e) u5 E t; y$ ^ @) C2 [

t.pencolor(c)

3 m( o( J0 [' I& c3 [! e4 U1 s
- i+ X* b4 u! g
7 ?# W1 }. Z- W! I4 Z3 O

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

) r" E, i6 l) H' F
, F1 `- D9 s$ I; X8 p* }
3 M C* @* |$ H( p3 b- e

h+=0.15

% W! s i1 t' u% b
, |. A" X0 v. s4 d+ K
. ]4 A4 H: z* s* L# }4 B

t.ht()

( L7 j ~% d8 b) m( l
8 t* A4 P/ o9 u* m7 d
2 ?- B; Y3 Y1 Q. j. V! }2 E3 Q* T' U! w

tu.done()

; ?/ z+ h4 [6 M; g; U- a
M3 T9 l# E2 C3 @3 t! p6 F
' ? F* L9 `/ {: W# R U
: N& Y0 F/ o; E5 W
: l3 k( X; s- x8 G' k- S
( [5 X) ^3 j& B* V
举报/反馈
1 k# e/ ?, J5 v. ^
7 G7 T7 O( s+ T0 Q- [$ X: ] |% r / N2 j. t( }3 f* C ! B z4 @9 u0 i# L 8 r! t! w+ Q5 n- w N4 w
回复

举报 使用道具

相关帖子

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