|
|

楼主 |
发表于 2021-7-27 12:55:16
|
显示全部楼层
今天我们来挑战一下黑白阴阳图(太极图标),还是直接看图
1 Y, P0 [; B: z% U( ^5 R
/ j$ g* f. m! }1 g2 q- # -*- coding: utf-8 -*-
; W/ g& \* q1 ^# B - """2 F3 f% Y" \, d4 c+ _ s$ J
- @Team: 新大榭论坛
4 |' X( Z+ A5 o) A7 L5 } - @Author: 张黎斌
" D/ A9 F% Q3 g$ D% d% j - @update: 2021-07-27
( e }6 U! q) m2 s) r$ b' f* y - @Version: v1.0
2 M5 ]3 r6 ` g7 T/ D7 p - @BBSid: 7171-14; m' K4 g* g$ m8 A, ~
- @Level: B: D, r0 \" h. s- e! A
- ---------------------------8 H) Y: K1 B& w; C" J3 I
- 《画黑白阴阳图(太极图)》# \" r8 G9 z( K' Y) [( C
- ---------------------------* v5 B4 V( T* r& q, l4 X
- 改进信息:考虑到超市为了更好地制定营销策略,可能想知道关联次数为任意值的商品对功能,& O* X/ m- {( ]2 F8 L+ X/ c, c
- 我们增加了一个查询关联次数的功能。
- q1 ^) j/ T* W1 D8 t' P. ^1 V4 k - """
7 t, g/ X9 f- v/ U$ u+ B; J - print("+----------------------------------------------------------+")
) j- d4 g- I# m+ |! @$ j2 p- g( G - print(">>> 新大榭Python文件启动程序(py文件双击) V1.2.21.0727 ")
7 o; B* S" ]4 W' A - print("+----------------------------------------------------------+")- s; ]2 J' _7 o' A
- print(">>> 新大榭Web实验室 http://lab.daxie.net.cn/ ")9 u; n! c) ^7 y/ r
- print("+----------------------------------------------------------+")
* |+ S- S3 v% F N - print("↓↓↓ 《画黑白阴阳图(太极图)》")3 k* \$ i0 K; s* O1 X; u& H9 E! t
- print("+----------------------------------------------------------+")
' ?* C" ?0 H" W- r4 {
& k' q- {1 \- m! E* o- # 以下为主程序核心代码 ↓↓↓
- |) C% v. y4 G6 U' J( N7 ~
1 K" e" [- p; ~" K7 z. V4 n- import turtle as tt$ O$ G4 Q, L* e! G0 w6 y$ V' G7 b
- import math4 B+ }* R& Q2 v, l
- ' _. g* m. c( J- C0 f( x
- tt.TurtleScreen._RUNNING = True # 启动绘图,在IDE中运行加这句可避免报错& R, F( ~2 c+ x( L6 j& {
8 _. i8 b) T2 N% }) `' z6 h' z- r = 100 #设置大圆的半径
* K1 W0 ^/ `" U- E2 f - angle = 180 #设置圆心角5 ]9 s; F I% }: k6 U4 i
- tt.color('black', 'white')#设置画笔和填充颜色
* v8 r* R: F; Z+ F! x- U; o# U - tt.begin_fill()1 n( A1 U' _' N! g# h, {
- tt.circle(r, angle)#画一个白底黑边的半圆3 F9 y+ z: T+ ?1 Z+ e8 k
- tt.end_fill()4 {% ]* b r+ g/ x5 K' z
# o/ M8 p' g5 R. ]* `& x" F$ }- tt.color('white', 'black')
( Q1 O% l& a3 { - tt.begin_fill()* m, v6 _ |! m* Z* U- T
- tt.circle(r, angle) #画一个黑底白边的半圆
, R' }9 U9 R0 Q: p* i - tt.circle(r/2, angle)#继续画一个半径减半的半圆
. Q; G+ K0 a$ b, n" p; C$ [ - tt.end_fill() #将上述两个半圆填充成黑色$ ^ ]/ ]9 j1 x0 S8 U( D" k
9 \/ A/ l+ L! N3 i0 W- tt.penup()
, p8 a: M0 {/ j. u* N( s7 c - tt.goto(0,200) #将画笔定位到适当位置
' h8 P. t. ]1 V- C - tt.pendown()
4 j3 f' q- |$ E+ t - tt.color('black', 'white')* o) X$ u! C" E
- tt.begin_fill()8 e' L0 O' B G4 }- Q6 W, t: M
- tt.circle(r/2, angle)#画一个白底黑边的小半圆
5 T: }- {( f1 o' |! K - tt.penup()6 f7 |) C- D2 i% c6 Q9 n; {$ B3 Q
- tt.goto(0,37.5)
) E. t" ^, c0 l4 Q. |$ |2 l - tt.pendown()/ h; V$ H- C+ @! y
- tt.circle(r/8, 360) #继续画一个半径更小的圆
% Z/ F; `8 X. J5 S8 C3 [9 X - tt.end_fill() #将上述两个半圆填充成白色
. @: T! \$ H* M
; f$ ~" \; i1 k- tt.penup()! m1 s( |. F5 g e+ H
- tt.goto(0,137.5)5 B. w6 Q! _% i3 D6 D
- tt.pendown() n" {. H: H5 Q4 y( u) t. C' i
- tt.color('white', 'black')2 _' j4 D# T) w; h4 t
- tt.begin_fill()4 `. A5 p1 ^7 \! n
- tt.circle(r/8, 360)#最后画一个白底黑边的小圆8 |; [& U' v( L5 {9 n
- tt.end_fill(). ?$ ^8 _0 I7 ?9 w0 r
- ( _7 T$ A3 [/ Z Z
- tt.hideturtle()#隐藏画笔,使得图像看上去更完美
( z5 q3 U9 D' x2 N3 F
9 q+ V M& f0 E% d$ H# T- C4 N( ^- tt.done() # 结束绘图,这将不会关闭窗口7 ]2 p1 x( [; n( Z) d* g
- 4 P1 R) P/ j; }: }, z
- # ↓↓↓ 以下代码优化与答题无关,可屏蔽IDLE程序意外退出!
+ ~9 ^: ^. m+ f9 I+ T
0 W3 S! X" d, G* \* W- print("┏----------------------------┓")( ]0 V% K s, p/ ?
- print("┣--- 按下回车键即退出程序 ---┫")% t% O i8 D, O( q
- print("┗----------------------------┛")
! ]9 @' p$ [- a6 n! l - input(">>>")
复制代码
5 }. A( f% h( u, { |
|