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

[复制链接]
t g# l* k3 |
' `+ O: I5 v$ F8 F; F4 a
6 W$ l3 `0 y/ r4 S2 z6 m5 O
$ t' R( ~* w4 C1 ?0 b) p8 I
01:39
% ]5 z. ?5 k1 m5 T0 h! F
) f1 `5 A+ x- k1 l7 X
" i3 v8 Y1 m9 @( O! e, U
$ t3 ^" W% q9 C1 U/ q
) Z7 M8 [1 m# J; ?8 I) M/ t

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

" a! ~* I! m' N. i
8 P$ ]% h$ S& z6 p
& V6 m6 I% w9 P3 F! x- M
用python画漂亮的类似七巧板图形
2 a6 h0 F* i4 y9 l' O( ]8 {! S
& i2 D( g" t: U( A: D. _
, F5 M7 u. ?7 b8 t% g/ W' c

import turtle as tu 调用turtle库

& g2 o8 ~& E. w0 X/ w
8 M( U9 X& \& w# ^ t X3 \; q u9 L$ z
4 \3 U& x! C* A$ n

import colorsys 调用颜色

3 q5 W4 X+ R+ `$ v: L6 I8 d5 H9 }
4 m: K' ~& u8 P% Q! b$ g
( g: A7 c' c7 F9 ~& `; x; y* y

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

' ^3 V1 p7 c4 @* K. g Q
- E" J& B+ I% ^ i5 N
) }( T3 W' I6 g9 o% X: q, E6 s

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

: b: P2 ]2 s& I) T% n" W
5 L! }: r# i. b! [5 T. A
/ n1 L" v3 I. K

h=0.3 设置色相

$ B+ j+ |8 o/ \7 t# [( w
0 F6 [% |8 |: b5 {9 U
- V1 E+ ?& |" P6 r- ]8 T7 c

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

- g" O! _) K- z9 |# L
6 K: D/ {+ o! ?2 R O3 v6 w
& ?, l. Q4 C& V! @

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

! ?( J. l- j( Q# V" [) a
4 u) w3 d/ w. b; x: d
# @+ N1 \ \: n, L9 Q! K( s

t.fillcolor(cl) 填充颜色

! t* C- E* f3 u0 M8 k
: ^% k( B/ B3 B4 X, n/ `8 W
9 R: J9 `) N+ q; W8 Q

t.begin_fill() 开始填充

* B" [5 R9 I( G0 [
& `3 `+ G: L0 C+ q- @6 x' i
; ^: L! H B" o

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

/ w% }. J. L8 h+ P5 c6 e" L: c; u
! D/ k" X' H7 e9 R0 ]4 ?
3 Z! j' N6 J( L' t c

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

7 b- u2 j% }, d* _
. [9 `& p0 T' n+ H" v" a
( ]8 R9 K9 Q f/ Q4 E

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

% [& k: l# a$ x+ }7 W2 D
* T9 Q( p) b, K; i4 S: c
T6 k% M S5 B$ W9 A% P/ D! ^* e! {

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

7 I& r, c6 r5 \4 G4 g( c
% L3 ` C f( {$ M
8 {0 C, Q0 h+ M4 ~& @

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

7 `( l+ M+ _$ Z) M
2 p9 ~# U) \/ A4 y' g% X3 D- k
" V }" m0 O" M, i

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

' r7 y2 u0 N, |$ d8 X& D0 X& g* }- n0 U
& ]! P4 _. C4 F I
4 I* A* p! \+ N8 v! p/ Z

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

: q$ N1 ?- \6 T- P
9 s9 y. n6 Z4 m. T( C
5 V* F; f0 K. Y: b. W2 j

t.end_fill 结束填充

& ^* `( a3 F1 D; k1 r+ L/ ^
+ c5 O5 Z: s; O9 o# H/ w
) r( r2 V' s; z% ^, m m2 H3 b

t.fillcolor(c) 填充颜色

' K y( a7 a4 }* i- I! ?
% |0 r1 `$ J! W; T+ P$ c% t* P
+ c; ~( S! ?* i2 s

t.begin_fill() 开始填充

2 J# F/ i9 X) }$ B% H+ z
7 r4 p( C* O+ j. x6 X1 b7 h
4 B: B( [0 A' b L9 m. L

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

0 d. F8 x \" E Q& B' t* I! g
7 b& T8 o$ a4 X6 H: n, T( Q
" }! l7 D: g1 N

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

7 G/ C. \! A! E
9 Z6 B# t( y% z% S) }
+ r) s5 c: O7 p7 Y2 d- ^

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

. Y/ f( a2 x4 U* ?; y) g8 m
' A+ [# ?; d8 c1 d9 D) B
: G6 e8 E2 K/ v& R

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

. i7 s2 g" y* R( p0 f
. z5 N t: a! d* U% a F) v' _: j; Q; q
6 P0 @8 K, Q7 `! t

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

) i6 s, ~) f9 m2 _
6 K& t, k& s% G" F: y1 \
# Z" x( C0 J+ t

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

R5 \+ C. m( }0 g' }9 u! y/ n
# n. z, i# H. r" {
1 a/ X, Q/ g5 F$ ?8 {: Q

t.end_fill() 结束填充

0 s& L+ u$ c' Z* U. ]
4 W( R' ]$ X+ b0 v8 O2 ~* p& u
& P9 s2 Y1 s8 A. Z9 {( y0 _# r

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

9 ]2 a$ Q* z c) y% z$ _
4 q7 C. X3 V- S6 ?. q$ E/ b8 |- {9 r
/ t5 d$ {( K& D/ p

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

8 c9 i" v3 N$ @
5 N9 F/ T6 f, a
1 D. g u. a0 S- R- L

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

+ D# f- D% U$ g0 J/ h
0 W0 P4 @' n$ _/ U! T6 B
* p; T( o" c( ?; J f* C4 ^$ C

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

/ l6 I* [% Q4 S! \! K
" E( p1 H- \# y1 a2 C2 p
7 e; S9 Q/ y2 r9 l; |0 p g, t2 |

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

# j9 H! c* x% ~2 S- {
0 m4 H* R# }0 |$ f3 |2 p4 s
; I0 K6 [% x2 ?' Z4 ]( h' {

h+=0.15 设置色相

" X4 z }* W+ L/ ?1 T, i1 c
0 a8 B2 L5 x& L) g2 ^0 H
. T0 ~9 Q* X# U5 m3 U& O

t.ht() 隐藏画图

8 i: b+ k6 \* [
6 ^2 C$ Y6 I6 e% I
: K) B; Z% B0 U% d2 q* V( e

tu.done() 结束

9 c- r3 ~! y) S( }0 V
4 B; b+ E# d% L9 f
# a' X$ L3 O5 n7 s9 ?
. C2 N' m4 U" B9 o6 _+ r9 x
% H ?) ]+ P( ?# d. l/ X9 z
+ {$ N. K: u" ?

源码如下:

( ^3 k) w: [7 X4 G
" R& ^: X( h1 t. p" j
G# `9 \. m4 `" g7 t# K4 W( d

import turtle as tu

7 @( ?& P6 M( h, a
; x- x, b5 s5 Q5 {
7 L7 {% X# ^6 R1 F* K( U

import colorsys

# p8 ^. R9 b2 ^. P. F% u8 E8 h: `
6 \7 n1 I5 m" s; {( g
" f1 B" |3 j* D8 R ]2 p

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

6 Y+ B* F+ [( }7 B4 \2 V- ^, j
' H6 ]( K" t! C6 b( J+ x% H
5 y& D' Y! _4 \6 m

t=tu.Turtle()

% z9 R3 r- o5 X& ^) H9 I( D7 S
T" {' H3 O0 l" d/ P
! r4 Q+ V) ~2 h8 c. D

h=0.3

+ f" Q7 ^6 N9 o8 L* Y ^" ]3 t
! y4 u. h: P! T w/ l! p _# V
* Y" ` b3 Q9 K: `( h2 C a: } W

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

. m0 q$ y5 E# [9 T f
- d" Z+ B- @$ x- _) H
. I4 S/ [9 R2 E- E* D

t.seth(ang)

" m y3 ?" W& P$ X5 K' e
7 P# H5 {% Y; p7 J2 w/ \
F5 o4 F4 B5 {; [; H9 Q9 y

t.fillcolor(cl)

2 b& j$ e- I8 A' ^
% j' s" P7 Y- U, A0 ~) I
. ~' L/ l4 s6 z- f

t.begin_fill()

# d" Q7 k9 P+ ~4 k: s/ C+ u, U
# }" y2 \) O2 k8 p+ C
/ D, [2 t; S( u! T/ x( P

t.forward(len)

5 T. m: ^: ]+ S
6 v( F3 ~8 p7 @6 U
! V9 Z$ n" J. Y& @6 B5 Z% Q9 G

t.seth(60+ang)

# _8 ?' N" K: Z: F
5 N8 J: [; F3 F8 P& V) o
6 ?6 g G8 _* O7 q/ R& f

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

) W9 K6 g- V, \/ ^5 k& ]: c
1 A7 V Z$ s+ z1 r7 }7 t; F) x
W" Z" O% n s- A7 m

t.seth(150+ang)

" S$ e, M2 R5 E8 G& N5 a6 Q
8 Q5 v5 ~& u5 H8 n" p3 t, G M
' o2 v& M! t/ U. N

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

( m7 t9 H4 S5 j9 [. {* [* }* V
! S' E) ?/ W! o/ c' K- r
" i6 i/ R' Q2 V4 ^

t.seth(210+ang)

# f7 i- B- j/ T+ t
! R+ ~' O T8 M% {6 {
. g- e. D. m6 P8 {, [

t.forward(len)

6 u+ l+ G q) y% C) H
; h- j) D9 q% o
7 H/ _( N1 c6 d$ g: i) b

t.end_fill

/ `0 ^0 `' D+ {& E/ u' ?7 i
: A5 ]# L( D! t8 c, Y
' g; Y Y/ H9 H1 Z, X5 t2 X

t.fillcolor(c)

* g& K5 ?0 n0 X/ h
B0 L' L& S4 J5 x
! N* i0 z, j1 @$ l" B# l

t.begin_fill()

1 f7 H9 B, w, E. Z" ^5 q0 w$ t
( I" I! y) J1 a9 U( x3 [- d% |
& @4 b, O* O* h

t.seth(ang+0.01)

; [( ^& P5 D0 G
3 R1 F& c- j2 Q o) G
* }& Y# \+ i' T$ Y

t.forward(len/2)

' [0 l% u k. X9 O2 G! g9 j) a
, \) E9 x! i( j$ ?8 I. e0 N& ^) @" h
' |1 j b6 p9 O# I: [

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

/ [$ [; |! _) U: q% G- B6 i$ t
: a/ O4 e7 X; }$ m1 v3 b
7 Z, E w: _* b+ @0 M1 B3 n, y

t.seth(30+ang)

4 j& a& S* e8 H0 o" U5 H. K" {
- E: l3 j6 Y1 U T$ M8 @
& Y4 }/ a9 b6 ~ H/ f

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

4 T }& X$ y) D3 [
, e, w) I) s$ l! _3 ^8 Y7 F4 {
) u! P+ P( n1 \# O

t.forward(len/2)

+ Q m. E# J; Z! p$ [
/ X, V. Q) H# ~9 c( _
8 u/ R! E! {. ~$ D2 T& U$ I

t.end_fill()

$ [* B7 T o& @7 ~& \5 i, t
8 @# ^2 w- o, w
" _5 |8 m7 i* b0 y! {( p

for i in range(12):

2 t3 M! v' b& V0 s. t6 I- c1 u
# z% ]. |. ~2 p' X$ M
/ g7 r/ e6 G k9 S8 c' v5 x3 ^" r

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

. z# }9 ^+ {$ L; _
9 }; Y# w, k& a7 L
+ G! a: e. [0 ]7 |3 k. J0 e

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

9 b. \3 N9 c. f3 G) h; ?1 L; @
q) y# L& R/ S5 V0 Q& I
4 b9 R3 c: G# ]! p

t.pencolor(c)

! T% I0 v* w! u" ]2 `, d
% P0 `; {7 O" u6 t. }
G5 [2 {' s! s8 d4 Y- n

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

$ L9 |6 _3 n1 ]( ]2 x/ u
0 ]% P9 w+ F& j2 u0 R) f% _' E( O
, R ?$ k7 ?/ ~6 W- I A; f9 Q

h+=0.15

6 `( i, @* e+ v, [# l" N# M6 b
) Z* Y; {. Q) q; k- @" R
7 u( K7 ~2 K0 x6 H

t.ht()

* D! M5 d& z. Z& H6 F% c
( @$ X: [( p& Y- a" }' O
* g! ^- W0 f/ h. K# k) l) Y2 }0 z# B

tu.done()

g: c" P: c9 K; V* O; c
- ~1 D! B ]4 p) _# h1 j1 l2 @* g
) r3 P! R0 w% G5 x6 Z2 x |
5 U" b+ ~7 w' s- l$ h
9 k y( Q- z. E- f: e3 t& x% ]+ w& M
v# W/ U/ a$ b& {1 O
举报/反馈
) d, w( B+ Y$ a0 ~
4 Y$ z/ c5 o: D/ L" L y0 I) h8 l( L( j* I2 c ! X! W5 u( |% @" K6 o0 A$ Q& a. m0 U$ X" g & j7 c& B. [! v M% [
回复

举报 使用道具

相关帖子

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