|
|

楼主 |
发表于 2021-7-27 12:55:16
|
显示全部楼层
今天我们来挑战一下黑白阴阳图(太极图标),还是直接看图4 @) e- H, l- h. F- i% d% e
, }' e/ `: {$ @! H0 b5 h- # -*- coding: utf-8 -*-
u0 |; M. p7 e2 X - """" F' u* N' F( Z( d
- @Team: 新大榭论坛
& \0 X9 T: |3 b" x9 h* P# Z - @Author: 张黎斌
( ~- E- z9 G1 w( f2 K - @update: 2021-07-270 [0 A# `& G7 h/ F5 i
- @Version: v1.0
- i5 a/ i* p1 z8 }( D: F: | - @BBSid: 7171-14. u/ [0 ` y! `4 U0 T/ S
- @Level: B3 E- l8 F6 D( D% h4 Y
- ---------------------------: ?, p. T% @: x9 t0 Y
- 《画黑白阴阳图(太极图)》4 h$ `+ K j6 G, R6 r
- ---------------------------
8 C1 p' L: ~- K. F! b( t% A% h - 改进信息:考虑到超市为了更好地制定营销策略,可能想知道关联次数为任意值的商品对功能,
; a0 X7 U+ ~$ l - 我们增加了一个查询关联次数的功能。- X( f& O3 N) X y; B3 j
- """* {6 ]9 d% d# j! B) I: [2 Y; Z
- print("+----------------------------------------------------------+")* i5 U# _& l- z# H7 x
- print(">>> 新大榭Python文件启动程序(py文件双击) V1.2.21.0727 ")
( m+ _9 D. o8 \7 ^/ i - print("+----------------------------------------------------------+")
" o" f* \, g3 X9 i" h - print(">>> 新大榭Web实验室 http://lab.daxie.net.cn/ ")2 U6 v; i4 ]' y' a; W& x
- print("+----------------------------------------------------------+"). m3 q3 m4 ]4 |3 `5 {2 q, j
- print("↓↓↓ 《画黑白阴阳图(太极图)》")
+ @+ ~1 Q$ a/ p - print("+----------------------------------------------------------+")) C! x. ]7 {8 q# Z4 S- X( E7 `
3 Z0 s- w$ J/ [4 f" e- # 以下为主程序核心代码 ↓↓↓
% f8 p6 H. ]9 @# b - 1 W! b* P3 N3 }8 K
- import turtle as tt
( A0 I1 m `+ U+ H- p2 ~4 w9 s - import math2 j9 y( ^8 k: P. J2 P
- " L+ K( U0 \3 S3 {6 x
- tt.TurtleScreen._RUNNING = True # 启动绘图,在IDE中运行加这句可避免报错6 M `, {* [/ n; }
1 @4 I8 e+ Z( C- r = 100 #设置大圆的半径. J& v1 _3 z$ U: g6 L* b
- angle = 180 #设置圆心角
3 z: [/ [& s m( J- v7 d2 O- X8 d( b - tt.color('black', 'white')#设置画笔和填充颜色! S* P S. O1 O
- tt.begin_fill()
: A1 @% D: x! J% F$ q' Y+ V, ? p7 |+ g - tt.circle(r, angle)#画一个白底黑边的半圆6 R+ `1 h+ C% k, v
- tt.end_fill()
* {+ Y0 m+ O% ]' H- _* s
, F8 \: B( Q5 K: m- D0 U: M% m# q- tt.color('white', 'black')8 G, r& | r+ z3 Q' I8 X# R: P
- tt.begin_fill()0 {. X- |( X$ i/ n9 N Z
- tt.circle(r, angle) #画一个黑底白边的半圆
* N# Q% O9 q. u1 C! ~ - tt.circle(r/2, angle)#继续画一个半径减半的半圆
, [4 G3 f2 K3 F" r. w6 w+ v1 l - tt.end_fill() #将上述两个半圆填充成黑色* P3 {. z/ m& z8 e" u- B6 R+ ~/ C
* W4 L+ d6 K! T7 _- z! M* x+ H8 l- tt.penup()4 e& ?" r5 J- o) a
- tt.goto(0,200) #将画笔定位到适当位置
4 Z1 |! A4 Q: C8 J4 d. q - tt.pendown()0 \& ?; t. v7 Z! e u
- tt.color('black', 'white')
# u- E# m4 z0 j3 b6 L - tt.begin_fill()9 p! q; I1 Y+ T) I# L3 c9 {
- tt.circle(r/2, angle)#画一个白底黑边的小半圆
3 J) H5 ~! V. ]. }* e# n - tt.penup()
( i* y1 L% S5 e$ u - tt.goto(0,37.5)+ G Q$ z w4 r( F6 y
- tt.pendown()
+ n- o- f3 Q. n' D) B - tt.circle(r/8, 360) #继续画一个半径更小的圆
* f5 s) g4 H9 U, p" l - tt.end_fill() #将上述两个半圆填充成白色
7 g- c2 f6 g% n3 t# B6 Z u8 s( E
# o* \$ K; v h0 L: p5 Q/ r+ o! R6 `- tt.penup()
0 z3 {8 }9 f$ k( {, Z - tt.goto(0,137.5)
. I9 n+ b& D; y7 f* F+ j - tt.pendown()6 M& g4 Q3 d! d; d- }: l p+ N
- tt.color('white', 'black')
r0 K- z* t" E4 Q - tt.begin_fill(); `+ ]4 N" G0 u7 J7 x- K
- tt.circle(r/8, 360)#最后画一个白底黑边的小圆4 R3 y* k5 _* j* m
- tt.end_fill()
! f1 y1 V+ j' A K0 x' p
# H" S7 ~( }4 U' ~4 P- tt.hideturtle()#隐藏画笔,使得图像看上去更完美. m% w* j& w" G
- ! `4 k% u/ X0 z/ Q& P9 _- R$ I
- tt.done() # 结束绘图,这将不会关闭窗口2 f2 z. }" m# v) T& H
! K+ ]5 q& Y: t0 t. b! D% G0 j- # ↓↓↓ 以下代码优化与答题无关,可屏蔽IDLE程序意外退出!
@$ Q3 u" b7 x M* b) M4 s - 3 c% O' I+ X! f( T
- print("┏----------------------------┓"); u O" x+ q* N% Z3 l; {2 C
- print("┣--- 按下回车键即退出程序 ---┫")
k7 u, J7 ^4 e. Y+ T1 B% r A+ b - print("┗----------------------------┛") * p; C( e/ b# j1 N# v
- input(">>>")
复制代码 : p! ~" }2 o6 N% L4 f- |+ ?0 i
|
|