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

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

[复制链接]
+ o+ }2 a" Y+ k4 J. }, s
$ v4 a) W( J8 ^+ D( G' `, Q
% P, [( C) Y; P: o5 J
# o. W4 ?3 _& S
01:39
! d! [$ z& Q/ b5 Q- Y
4 z: ]& a* L* b
% v, P% @0 o. m$ E: x& b7 R4 o" O
0 g) k- M& j2 x* s( q
# x. C2 e, \# I7 r2 |8 z

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

9 c) p; v8 o$ H( T9 q% f" x5 f
5 `; L* D2 e6 T ^4 q+ E1 p
* \) E; {1 e& u( f
用python画漂亮的类似七巧板图形
! l) G) ]7 f7 ^0 o4 l; Q
$ \5 g: S; R) [" W/ F
. ?6 i+ C/ y$ m" a; ] i

import turtle as tu 调用turtle库

8 V6 D; n* h* W M, `
4 _: `* ^. P7 l
0 d4 W' |( o! h! t

import colorsys 调用颜色

! ]( E7 S) u* Y i, N. u! Y, y
; h( Y$ T" Z' r9 n; m+ K( ]
1 @* ~6 G9 Z0 O" a

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

" x, r: M. e: s. t) O/ Z5 W) l
) V; r0 _( C4 j, A$ D
) E' [( c& W9 {( G" R/ }

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

B$ k; ?4 s% |+ M2 G
$ m% T& ?4 v- n/ a2 b; s5 p; \
9 S0 n4 c7 Z; M; n" ^; Y: B6 K. T

h=0.3 设置色相

p+ K! s! p' o1 q. J% R
! G8 s' u( j& u
- J9 x; a3 z' Y0 i* v9 E: N

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

% C0 L6 Q2 O5 D4 n/ E$ V2 O- [6 W
; b- N5 p% z& t0 }
6 a, v8 Z7 z3 z

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

1 Y) c# R/ O. `: J4 G! s
8 t+ u9 v6 g3 r8 Y' R
, ~( e) \! r- r/ G4 A$ A( u

t.fillcolor(cl) 填充颜色

5 r! m5 c# @! c: t0 ^$ x6 j" b
) I$ b! j! E$ ~1 s: O
4 B9 ~% S4 c' G$ j: ?. g( Z4 r, D

t.begin_fill() 开始填充

5 ^! r% d. j# W* W/ V. a/ a6 b
" _6 W6 g& p( _% i# u1 B
- [; g6 F- W5 R9 s5 c

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

6 Y- u. C# | J9 n/ y8 @$ \
# ?- c r* w$ v+ D+ U
4 S4 i# u3 M+ L. _( l

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

& B$ n b) U6 R
0 q* A; ]4 i- Y5 S2 S
; F) _' g6 k; J* y& J3 p) u& v

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

7 g% U ^3 g/ {, l8 ~' r
0 Y! y$ L8 x' J$ C6 t8 O
) ^$ n, M/ k7 t$ U+ C$ D

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

: A5 ~% R( U- ]& `# t: x4 v9 {
' G+ `2 }; W* @7 A8 s5 ?
6 ~& f$ X9 [3 F4 c. C

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

9 C1 D! V' \; u7 k
/ _8 B4 {) Q% U9 q+ r4 l- i! u1 i
% S% Z" Y! j; x$ J+ ?2 Z* ]0 D" w/ ^

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

* j; F8 i6 {' a) O3 Y+ B
& R3 ^2 K) D/ F$ |9 s
7 ?$ q! O K* m1 R- P$ ^# q

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

/ [3 }6 D: Q7 q& Z2 A% X
( e. c" K2 E! p' ^$ A7 g
3 e; Q1 T' T( |6 R* U! b- t

t.end_fill 结束填充

# {+ w" R3 p& m
/ }8 y$ Y& N! j# E/ e& W D4 l% m; W# R
: D7 K4 @6 C- H8 K, ^+ l, e

t.fillcolor(c) 填充颜色

8 M: O# y% q% U0 ?. e
- j( a6 v( b; A0 E8 g' G$ x2 _
2 Q+ _3 q% o7 P3 L+ e

t.begin_fill() 开始填充

- N3 }! {% q! O* s/ y- D( ?0 ^
3 e5 W2 F6 O9 Z, p4 R
6 @$ r3 Q0 s5 N5 K' L7 I' m0 N

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

/ @- _. M- l: j8 C# A1 r& _0 c
: ]1 P1 J1 g0 y, p; f9 g: Y
7 A4 Y2 E$ F. g; @ Y+ o

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

# G, Q6 Y& `5 o- q. P- L6 B
4 n/ `5 k t' ^% f/ o1 @/ x4 n0 n6 ]
: _% g0 W5 B7 M( A7 b

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

& J7 g: L: P* Z* ^& b5 ]
% P: o. k; |% {1 w4 a
( B! T& r K* K+ A$ y! w

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

/ `- u) r, [3 { ~7 i- t$ j
. r% B& F' U1 B
6 }9 s( O% T0 H- P' c3 y

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

, n- @% B; Q. ^ J' G8 p O: d
: g( R, e/ [: w
! L# q: I+ A% w2 w' X: ]3 m

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

/ }9 n; u# {6 m: M) |
; O' i5 l6 P8 v# G
6 w' X) t- p. [. f4 B* D

t.end_fill() 结束填充

1 e7 Z, H; u0 K3 X1 k+ `" [
: {. k' Y7 y9 ]
$ a5 M5 O D- T n3 \. b, }, K

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

* e1 L. k) P& Y/ x
G! Q3 G& C& f/ s j
% e) o3 U' }$ D8 r+ ]& B

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

" d1 d6 C- d2 L7 o+ ^% `( E9 [
7 \1 E5 Z! e6 X; _+ r
2 j h% P8 a3 L

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

3 N% c* n0 c3 g4 L4 E
& l$ V7 a/ u _/ {7 _' I9 I8 Z
# G. q- n2 s# [

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

4 ?1 X4 c7 O! a/ h2 y4 u+ a5 R
f4 a5 v! |. K5 Y. {/ S
: D& V P6 ^0 }/ z

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

4 _" d: w6 N+ Q& {8 r
: g5 [9 ^1 c* ?, V5 [) O
; V! A. j9 \* _# e# m# D# ~

h+=0.15 设置色相

) r/ F: Y$ `2 |% k# Q& u& D) C ~
( e( S- I) C, A) s0 F2 {# F+ U
" n- s8 s1 ?) @5 b1 p

t.ht() 隐藏画图

^- G1 ~1 R. H' D9 Z
$ u/ F$ c. K" l3 V! Z) e9 H0 V# m
" l) a% P0 V' z# ^; m# T% u. F3 `8 G

tu.done() 结束

! j1 K$ e" ?5 A% ]- P1 s) t
; n9 d, w2 {3 F2 K
, B8 O! O; s+ w
0 k% i5 t" G3 v5 q, x
1 H C1 [' k/ \
( ~# J8 ?, G0 \$ E& p4 O

源码如下:

& z2 u* E, _: F V4 C3 h- l/ |( s
j' v" C- c, w) K0 \
9 v( `1 i4 E+ ~$ K

import turtle as tu

* U6 \# Z! J+ N6 }2 s9 }
2 R2 N+ c3 R6 }
, i4 X' g8 \# ?5 p" U( E

import colorsys

9 f" J6 N% s5 m) n& i9 w
. y/ a5 u3 _$ l7 f2 [
) E* E9 c, {( k. Y/ R! [

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

, p* D O$ [+ S* R
, b( S; N9 J$ f- J# M0 T4 i, V
% b( Z5 X4 C" z1 O7 ]

t=tu.Turtle()

# b' x& f% c* N6 ?! E5 T
. N2 { f+ I2 V; m
/ Y8 x+ v0 C# J7 \; N4 R1 ]

h=0.3

4 k9 Z9 P- u5 D4 V7 J
. I r( x. ^. C) ^- e
% ^$ ~+ b% R+ u/ m# i7 `$ f* n

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

7 n+ i9 r5 [1 _. b0 G
) h2 Z) d! Q' f* M \* W1 V, [
. ]$ o" M$ D7 g

t.seth(ang)

- m; D$ s: q6 V. o0 a0 L' j
* e! ~9 X% } S$ J1 x
1 J$ y: y5 k" n% J) P* \

t.fillcolor(cl)

/ y, U# T8 q' O
' i, ]* x, U! T3 P8 P
0 N* o' J1 e. r `" l7 G

t.begin_fill()

! V3 ]9 ~5 w. E: R/ U2 i) o
# j6 `" F! d6 X2 u5 M
7 ~6 q5 _4 q! ]% t

t.forward(len)

; U! F. i+ ?9 D" s% I1 A- u
) H' J% w+ w( @) O; d: j
0 E% R5 b1 P0 H8 |! _

t.seth(60+ang)

: H" ^) f1 Q1 }2 R2 f4 J
/ A- h+ a8 e* g! h5 C( H2 s3 p/ n
6 i: x* i2 ?6 W/ Y% [0 {

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

2 B) e/ \8 M9 [) \9 Z; o
1 N) C# u3 x+ H6 ~/ C! x
& | g: ~0 G( d5 U

t.seth(150+ang)

* G. k9 G0 M* \" P4 }
M9 B* ^0 {/ _2 R" _
) [" d5 _- H: R3 C% i

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

6 b1 l/ I. u( ~# E* y* A
; k5 F) u: t$ D, h3 S% C4 g
9 O5 p/ `. o. j

t.seth(210+ang)

' r$ B6 ]3 O H0 G" [. k
1 W% C" p/ l. R# |+ [& b5 M
* t& N! W9 N. T# j

t.forward(len)

; l, B" M4 W9 r7 Q, J5 x- P
( a3 ~8 ] U! s- \6 I$ J
# _3 s& H0 {6 g3 }+ {0 d+ s b+ Y

t.end_fill

% @2 ?, I+ T" r" c" z2 X
* \& Q! l4 E5 w* b
/ Y+ m3 g7 r1 {2 [( O$ R

t.fillcolor(c)

6 W* _ k6 S/ f! e' q# o
# R2 T) ~7 W& Y! ?
. }8 r+ r7 w8 @) m: U

t.begin_fill()

% }$ C' O* m( y/ r4 Z' A; l
, v" G& V3 r& v, [( }* }
; |5 h G/ I& r, s" C3 k a; ^

t.seth(ang+0.01)

5 E, \4 {+ `4 K- S; S
/ f) ~* }1 R0 U. f4 F
. N, A1 y& q3 l4 K3 D+ G/ @

t.forward(len/2)

3 F* y0 i, _5 v' I
- A( d, I+ K4 v$ J
1 N: ^/ ?1 d( u3 ^% w- Q% x

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

% M$ K1 K* ?: c$ ~
* w$ }% }) [' a0 H$ ^
0 j9 r2 n7 Z* o: t$ z V

t.seth(30+ang)

# e$ j) g+ |( H+ W! [! o
7 l! e! U+ c+ C6 E
+ T9 K6 T# Z: R

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

" w1 g5 [' A% P4 Q, M$ m
9 D/ Q' i! [: O' l1 ]9 z3 P
7 K! A. C4 L" P8 h+ j8 s

t.forward(len/2)

( [# C- o `$ D; S2 |, E* x
1 J( W" X1 Y% r& z" q
. J+ M7 P3 Q- \7 V; m( v9 g% }8 Y1 [

t.end_fill()

3 M6 M d4 D+ O$ ^4 _
' P, n. }6 m: P3 o- y
+ F/ a* T Y) e3 t4 C* N% V+ B+ Z4 }) P" T

for i in range(12):

0 B- `, B% q. h' I
0 m6 S9 U+ a; E8 v- c& e$ N
3 t% r8 i5 k5 O/ m

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

" J) \# q! ~ w% t* E
- c8 h& L' J ^: ~
' J4 H+ s4 o1 Z/ d1 B/ \8 t

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

7 v; |& S% W7 o) E {
6 M& ~6 _3 ?# Y- q: ~
- Y& a. e3 M! P4 T! `. o

t.pencolor(c)

+ k% X8 ] c; ?: ?
+ h% i4 ?! q0 b, W
: {/ X0 B7 u9 T, l3 k

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

9 d$ i6 [1 C4 Q& ^# A' S y
* L- k! i* Y: O' m2 q* L2 m. b2 b
! m/ W! Z6 X% ~- F3 L

h+=0.15

, c' ?$ x: J& O! d# q3 W
+ g3 X$ X% F% T! @
; [1 U1 o) C5 A3 H* u/ A

t.ht()

3 _8 f* A. k0 Y) ?; }7 [! u5 }
1 l9 G1 m8 {* c8 K) b: G3 u
: J/ K0 x& \; T$ r

tu.done()

- X" { ]( g; P B" k
6 l- a' T# k3 ?5 `- P0 B
% S' g/ G; m0 S0 q4 V
( a$ Q, y# b+ X4 m; A$ n+ ]
a& G" J( A! E" o
) d: K9 E0 i! w/ T" L' d: q' R3 d2 n* h
举报/反馈
Q' K" S x- ?# d( H
5 i: D+ F% Y I; u, F# @( v; F. `5 g- n1 C / |) P# Z4 d5 E2 N' x: _3 ^% O+ D5 b: [2 ]! N: v! d! q# @! J ' i9 h& V! }9 K
回复

举报 使用道具

相关帖子

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