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

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

[复制链接]
' g s5 K+ e* H/ Z+ c& i: V
& y4 N8 Z l; {
9 p. |+ x% ]; T. U5 s8 m" O6 R
% z# ~" ~, M9 D; Z- l
01:39
) v5 i0 H0 ]3 H# I( }2 I
$ j( s1 t' q; e2 `. k
6 d, n% B% Q7 D: f7 ^, A* e6 d
; C5 A9 I$ M; f( o: u- \; B
, W. L+ o/ M+ G# J

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

' \9 w2 r/ s+ b
1 ^2 \! d* B T% D1 @9 c
% s2 S. B; \5 W4 I
用python画漂亮的类似七巧板图形
# N$ W& e9 D+ G# @* F4 ?
: S; [/ i% X5 C: \( L0 Y8 H
; \9 F+ F8 y6 i9 d! j- g

import turtle as tu 调用turtle库

4 x& w! k# ^7 H- m2 v x
) l, X% C$ H% L6 F. c, L! H
6 ^; Z1 }7 @* ~9 |, E4 `% T" b

import colorsys 调用颜色

+ ^* z/ B \; O, q, X
H7 ?8 a4 x. \4 t# D
7 L% v, w- y! i

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

9 y' ] J- R( ]3 z7 J
; @0 ]/ J* `0 c( {
% Z# q8 R" n- I2 \( |

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

* } R" ?: i1 |( N8 C1 T2 w2 e8 Q
$ V: C5 A/ c- d
- T, x$ |8 z8 ~& j N; G" s0 e

h=0.3 设置色相

3 n* r, _. [5 O; D0 R
/ n* V* e; F J( c
" a+ N, `5 k5 h/ @# @

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

$ u9 ] u; r4 w* T
$ v1 R9 ^ t8 m4 E
1 Z3 f, I9 |) N+ K4 r5 O, G8 r+ C: |

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

* o0 r5 D6 B$ B( H8 t( \
" Q1 r6 F/ X+ ~6 J; h
( h4 X$ i! ` c# n$ s1 H

t.fillcolor(cl) 填充颜色

9 u8 ]5 T5 ?& l! O. Z: T
9 ^& U/ B, u' b F( E
0 A; k0 R- o0 [

t.begin_fill() 开始填充

/ r; y {0 I8 O, w& {# L4 B l8 l9 d
+ N1 H4 `6 e& }: w
- o4 p1 R8 `, D0 R# a. \' P0 Z

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

) d$ ]6 J4 x! {- @
% J/ b# j3 F" M8 p
9 u, m( t9 M. E$ z3 s7 O( K

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

1 ^6 K e) d% _0 V6 p: D& _
, I1 Z8 v7 o4 p
|$ G7 ]5 W( M6 n; V' d: Y

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

) x# d/ S) d! M( ^
( `( L" ?/ R& l( j. x5 i2 e5 W; f- k2 a
6 o1 w, {/ L3 b1 v, w

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

~. _5 W6 u2 }
+ r' V9 a8 W7 \( W; e+ i
2 |9 J$ I5 S }. u; S+ \' ]0 Y% I

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

6 j/ r$ M. O: ]' z3 Y7 }3 X
u8 g5 I$ p" }; s) V8 M
+ w8 @% O5 t" c3 O' E- E

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

3 D) i: B T; x+ ^* Y, }
; C/ S" M$ P! {) t& x( z
9 m+ ~) R+ ?; A9 {! ~+ O' P( B; O2 a

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

6 Q- z6 k L' l* |% V5 i
& k" i. n9 z+ h
I! l" J9 q% Z9 d% V) @

t.end_fill 结束填充

, D5 [, H, m! c. w
& i. {9 P! f. l8 @+ i
" ?% J' u# G* d1 H+ |: ~/ D

t.fillcolor(c) 填充颜色

% N% h) m, n/ [, j1 w: g
/ h# g1 [7 J3 b/ j$ @0 C4 M
& `1 `, K' [" }

t.begin_fill() 开始填充

; a$ d% ^) K6 S2 K; R
4 j3 Y/ a1 \+ [ ~" L; s; O1 t
& k: t( Q( Q: |4 |8 O

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

0 i2 E9 L; P# Y7 B
3 U7 F: g' W* e Q* T
# q' [8 K/ Y1 ?

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

. l! l3 W, W/ \/ l( ^6 `
C$ }5 Q& x1 @
* K' h3 e- _2 u/ G

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

9 P' ?# D( y4 d k g( Q& [
7 ^4 u5 k3 w7 e
1 z' L' R3 m6 Z$ D7 k

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

/ f/ Q C0 P8 M R4 b! D
i4 b6 b: u' y6 E/ I
7 i* `, Z ?2 w Q# e/ M* L

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

) B! }1 d: S( C( f: A) F) g, V3 P: L
1 p9 c5 z+ {& Y* E
3 n. o" X3 q' M

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

) m" p" Y7 Y+ a
7 w( @9 P! P0 ]5 _1 Z& t( F- k m8 d
8 e: z/ `% g7 ?5 t% x

t.end_fill() 结束填充

7 [: S4 {2 n- }6 z; ?! u( V9 n3 t) r
4 F5 T) X7 |' D' u7 R
. E( f* a' S% L6 G/ v) m! Q! {; g

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

. n4 M: N7 T" R& ]) y
1 q$ S* U$ ^8 Q& L: q
/ a( I' D6 t& l' T

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

- H; A6 ^. u: l# W
( C' |5 v1 c" t+ p; u
3 j% t+ h: V7 Z1 c `& }6 \

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

* c! B$ }; `* G/ T% k
: I+ D1 [7 T+ i3 o3 ?' q$ j
( ~* a: o" t6 Z+ \

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

9 _ g3 G5 c3 y9 z4 E( o6 v
" \. T$ X f8 O% e' M
" y: |" o/ V& m" J. x0 G

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

& y& s! t# O( @" \ L& X7 a8 Y
) {1 c; @ [$ O7 c% O% h% B( E* A
- k3 _* O) C' ^2 H/ z3 ~- A

h+=0.15 设置色相

$ H; w; r* |7 U
% `) q5 o2 J5 J% e
, a( U7 G H' k4 v8 E( w. u$ v$ M

t.ht() 隐藏画图

# I+ A" Z2 `' Z% k( \8 w
* I4 w% h" w. F7 x
$ m- S/ _8 h. s7 p# n

tu.done() 结束

, w' _. N& m- I" z- j$ o# l" J
+ W$ J" U& ?7 Q
9 N3 c/ Y% x" z0 P
; }& s' T* Q, [# R1 f
( Z5 F. `/ Q7 {: e, F( K
" ^9 I# K1 I# R; O: v

源码如下:

( g" i$ J7 Y5 q( V0 H" x# I
+ ?: J8 D W; |/ Q0 b R9 B
N/ f8 J3 z1 u

import turtle as tu

& u% U. w( F( [5 `% X6 y& d6 O/ y
" B4 P( B, R, c
3 |" z8 u7 }4 U R) v

import colorsys

j1 s9 q2 i5 k6 h$ A
( i. X1 V: i. Y' A0 i* g: r
! I* L0 t$ F% M6 @

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

/ w9 q' k1 J6 e L
4 Y4 U% A; B1 h$ q# J( l" ~1 @( F
+ C' Q' n* i4 d

t=tu.Turtle()

/ U2 ~; L/ `. F' `# Y2 t( B
5 ^$ g3 s/ p- t
& M* k: j" Z' N3 |' l4 Y

h=0.3

t4 S$ _( t+ I3 j- U9 P/ J
- O; |' a+ u1 Y. V# L, B
0 T2 |4 |: c+ f0 V. z

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

! W3 S1 @7 h( F* i
; i3 y, J* Z1 V
6 P9 ?4 X9 M: b Y( s

t.seth(ang)

3 O9 z _" n, K3 p! z
% {- d2 I4 l* \1 q- ~1 U
; G9 @3 Y" U7 S4 ?% A' G9 T

t.fillcolor(cl)

$ W7 {2 Q1 P' K
- ~& l6 I4 z8 K% H
' o7 S0 D, e& G' ^* O

t.begin_fill()

: U5 e3 l- l7 B
" j: R0 w+ }& G. v
0 ?# M; C5 e: Q

t.forward(len)

9 s( V7 y! h& b
" N' U' A/ r/ F2 \
9 {$ x" y& L9 @

t.seth(60+ang)

+ ]7 t8 I: I1 i6 |2 ^6 q2 g
; z4 i$ d; h% i! h% K: q
$ L* b2 S! C. W2 H

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

' h% P# b" x' g
0 C$ t# O7 F# Q8 {' N( D
4 i5 a6 n. X, |4 ~9 \! y

t.seth(150+ang)

+ B, S4 A& k! u. e1 ?. V! c" i
. I4 o; z1 G" `- q* D
/ T Q# E. \0 |9 H

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

0 o7 B6 q9 l" Q$ m5 I. k2 X
8 \; \! W7 M7 e: B
6 J" Y, V5 `, L$ O2 h/ N# N

t.seth(210+ang)

* v1 `; Q& Z" m
0 O8 n l' E2 L& q, \
8 A1 K( r' _$ l0 J t" D% y

t.forward(len)

( d1 q- ]7 R% q$ {
; w4 r; m* s7 _2 L6 q* l# t
, N3 R' r2 f+ O2 q+ O

t.end_fill

+ s) L' r" [8 w+ ?, ]- c* p
1 U" i4 u3 I' E/ M9 ^
( q% I5 V! S/ @; T/ P+ ?

t.fillcolor(c)

7 D5 n8 U! W7 X! K& B* x
+ d8 ~+ c6 ]7 y" O( T8 i
. c( a3 [# ?5 \6 d

t.begin_fill()

/ W6 q4 u. k1 O8 N3 J
0 [& R- W) ?1 ^' K, n+ [
) D; C# U/ t+ x1 o( ?

t.seth(ang+0.01)

3 H4 r+ J8 o! M- \
- T3 k! Z7 }% |% w6 e
3 y! k0 ?# `: i& W4 r2 a& f( G C! ]$ y& u

t.forward(len/2)

e1 }0 a& O# E$ A* p8 j+ }
& J6 Y& r) @+ n! c ?
_# e/ ]: [0 D# F/ G

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

! X2 K6 A9 Q/ l5 ^) a
# b J/ r* ^' p, e F
* q7 O+ K& o# ~6 V# O) z! W

t.seth(30+ang)

8 l1 p5 i& a- m
$ x4 F& H9 J# k( H7 M
/ {+ |$ V- Z" x. A6 _& I+ T" K- ^

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

! [+ ~) h1 `, F& W. n, C
6 Y- {) W# L+ Y$ ^# D
9 q& a6 Z% ]4 V% B: G

t.forward(len/2)

+ |4 j. C& o8 K3 K$ ^- D
C( p! k2 V1 c# C1 W" x
6 z" Y$ r: {& p; g' x/ R# Z

t.end_fill()

; Q3 Y/ j: u A' L( ]
. n+ F1 @! r3 j; n9 u5 f
: d8 N v( F9 [' U* P: r

for i in range(12):

% v& g P& r6 I. T8 q! S4 w* ?
{) {: M. \1 Z
( t: E' K! w3 y0 W1 y$ s7 H

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

j3 D9 I9 ^/ H2 E* M) [! f' e
0 Z0 `3 M) k& W9 ^+ C: B
: k q9 g; i/ ~8 v/ M2 s6 l

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

; Z. c0 j; I1 w
) D& b" k( t* k d3 [, _
% j' a6 i0 K5 A: {

t.pencolor(c)

1 P$ Z3 J! h% P) p$ D4 C8 ~+ a
! _1 H' o4 T* h8 u" \/ A2 c
1 B$ n" F( M8 u! B1 z

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

: Z& N+ N# y, @
0 Q j# K4 q, c. f# H6 P; \
& N. ]* a- N5 \' Z5 ?. f

h+=0.15

1 R2 Q6 L! t/ ~, ]! `
! S! O. w5 C/ M }4 N' n
U6 z ?) C! \4 Y5 a" H" K! U

t.ht()

) B- {" m6 A; {+ Z: R
+ p! G i8 i7 U8 Z
% o. x- {8 h0 y

tu.done()

9 K9 n4 \# N4 w* |5 E( A! J
/ w5 t5 {; _4 {+ A v ]2 r
4 { s2 D6 L% J! \3 F8 E
9 D/ x6 ?& T- E( B. k Y
! G, F0 N' F% i
3 Q9 @. H2 U; c! j9 u! F' t
举报/反馈
! u$ n$ C4 U0 u ~0 {
( \" `7 m3 P$ `$ |2 k, W& _4 f3 p ( l& B( `) T: d. U7 B$ K6 z + B6 u k s) @- [ 9 L+ b) Q% r+ Y! L+ v2 |1 H& x5 N; [ ~) J: u% i) f8 z+ l' A4 q
回复

举报 使用道具

相关帖子

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