|
|

楼主 |
发表于 2021-7-27 12:55:16
|
显示全部楼层
今天我们来挑战一下黑白阴阳图(太极图标),还是直接看图0 s4 N1 G1 P. h
0 c6 o3 ` Z5 I- D
- # -*- coding: utf-8 -*- L9 Q0 S- W* r# G+ T
- """" A/ C z( M: w+ X6 {4 Q! Z0 i
- @Team: 新大榭论坛
8 `; r2 S7 X, I v5 j - @Author: 张黎斌7 m& V9 w% ]3 z& @- b
- @update: 2021-07-27
8 i- J* C2 J+ b. c - @Version: v1.0
1 p; r' }8 S6 R - @BBSid: 7171-14* t4 I. q0 v! |$ b$ m- P+ }
- @Level: B; q! p4 _6 \7 r$ {
- ---------------------------4 z) ^9 ]; v" u% _/ u
- 《画黑白阴阳图(太极图)》& A% ?& i) t3 F3 z% C" J% f5 @+ k
- ---------------------------
, ^- c* @" Q7 }5 n T - 改进信息:考虑到超市为了更好地制定营销策略,可能想知道关联次数为任意值的商品对功能,
0 r7 `9 `" L: }, l' x- y2 _: i - 我们增加了一个查询关联次数的功能。
4 n% w4 O( m0 H) g2 j4 P- { - """
; b9 k! s6 b9 v* B3 f# ^# }/ o - print("+----------------------------------------------------------+")
9 F; p% D8 h( N - print(">>> 新大榭Python文件启动程序(py文件双击) V1.2.21.0727 ")
* I, w( ~) V4 L" ?1 n - print("+----------------------------------------------------------+")- k7 L2 e$ m" r7 E% N$ _( L+ h
- print(">>> 新大榭Web实验室 http://lab.daxie.net.cn/ ")
- T! p* k! A) D5 N - print("+----------------------------------------------------------+")+ Q4 d0 E9 \1 x" }( b8 ~ `
- print("↓↓↓ 《画黑白阴阳图(太极图)》")
/ N. |# c( Y$ k N4 u - print("+----------------------------------------------------------+")
$ l; s: m2 v/ a# g! v' Z7 e - 3 K; D1 y( |. w1 [* V6 f
- # 以下为主程序核心代码 ↓↓↓
8 Y1 H6 M8 O% ~' }& _
, E* M3 u! j8 ]( c% @- import turtle as tt
7 N, N3 V; Z6 s, b; H, \+ y - import math
; [8 X8 i8 f0 `* ~ - - t: T& b$ z$ q2 }. a5 Q
- tt.TurtleScreen._RUNNING = True # 启动绘图,在IDE中运行加这句可避免报错# w# S5 c7 E. v) b* t8 Q$ U% D: ^
- ( z- I% D/ I- I
- r = 100 #设置大圆的半径) B$ R9 X# W. E* E0 [. I5 H' Z
- angle = 180 #设置圆心角
( x" U+ q* |2 g7 g+ j" E - tt.color('black', 'white')#设置画笔和填充颜色2 T- Q q3 F% x6 A) c% o- K
- tt.begin_fill()
) {: k7 Q1 z! G5 P$ t - tt.circle(r, angle)#画一个白底黑边的半圆
, n0 Z- ?! F4 E. | - tt.end_fill()
* v: t7 l" V" d2 d' ]% b+ E - 7 v0 I4 d0 B0 @+ M
- tt.color('white', 'black')2 }. p9 g! @0 P% d- M$ r
- tt.begin_fill()
, C. b, L K/ ?4 I+ E - tt.circle(r, angle) #画一个黑底白边的半圆5 s8 w( q8 j0 K4 o/ t0 G
- tt.circle(r/2, angle)#继续画一个半径减半的半圆
- A' L3 N0 U2 j2 ]& Q; e - tt.end_fill() #将上述两个半圆填充成黑色
; g0 b& y* I9 J. P
$ H5 n4 ?- E f- tt.penup()2 }8 X2 S- Y F$ N5 B4 g7 m' v- W
- tt.goto(0,200) #将画笔定位到适当位置
" A9 V' M/ J$ J; w+ O0 W - tt.pendown()
$ f: o; i7 P( \ b) n8 Q$ R1 I5 v - tt.color('black', 'white')/ C8 V) M, n8 b; {0 u
- tt.begin_fill()
8 \5 w( j% w- z" B, {- S, w( t8 a - tt.circle(r/2, angle)#画一个白底黑边的小半圆
; L$ E4 S- \ N3 l- Q, Q5 _: x% w3 d - tt.penup()
9 c) t; k" o7 E. B0 P# O - tt.goto(0,37.5)! p$ `$ f5 Q1 R5 c# _7 n; L" `
- tt.pendown()) V) H, L! K; t6 A
- tt.circle(r/8, 360) #继续画一个半径更小的圆/ B9 u+ T/ w# r/ r8 P6 H
- tt.end_fill() #将上述两个半圆填充成白色
# k) u9 z, E7 e7 s" x4 X - ; C: w+ c; L& N- D9 g
- tt.penup()
" z+ b3 v4 n" p6 ^/ z' ^6 p - tt.goto(0,137.5)
, A( A+ i8 A: X9 c4 G3 U - tt.pendown()
% S# n, c4 B+ e, H+ Y3 F6 x" G& A! I/ n - tt.color('white', 'black')* a z8 ^) i! b8 c+ i( }+ h5 Z& S1 ?
- tt.begin_fill()
) ?8 P5 b1 P: s' }4 l5 [ R - tt.circle(r/8, 360)#最后画一个白底黑边的小圆$ N3 B; T b( W7 R% {/ }2 I
- tt.end_fill(): S9 `3 j( R# G ?% @/ u( \% C
# h$ R' H3 s7 g' l$ [: |( x) d- tt.hideturtle()#隐藏画笔,使得图像看上去更完美
; N" m- J; c' w
! O9 J+ A# S, m" M' I- tt.done() # 结束绘图,这将不会关闭窗口2 T; [$ ?- R; E
' H D. D3 C, A, P# K& v( e- # ↓↓↓ 以下代码优化与答题无关,可屏蔽IDLE程序意外退出!' b9 F9 |" W! ]3 e2 \/ A7 T
- ! Z4 M% ]& }( v5 j% B$ a. `: Y
- print("┏----------------------------┓")
/ c. X9 z; H# H+ `8 Q* T- j$ g - print("┣--- 按下回车键即退出程序 ---┫")) e" l- `$ W$ Q
- print("┗----------------------------┛")
$ j7 j. M/ U3 j4 t! d/ j* w - input(">>>")
复制代码 7 A- ?/ C. n+ z$ ]
|
|