|
|

楼主 |
发表于 2021-7-27 12:55:16
|
显示全部楼层
今天我们来挑战一下黑白阴阳图(太极图标),还是直接看图
" U/ e! C( \ h7 e
' ~$ z! k1 o6 M- # -*- coding: utf-8 -*-
+ d G7 m- H- ?( P - """- b! _1 a. L8 i+ p5 A" S
- @Team: 新大榭论坛
6 F8 h7 R3 s Y% l - @Author: 张黎斌 B. t+ u5 ` h8 S: N7 M+ F
- @update: 2021-07-27. }7 h3 P2 @) K. |) E2 O- O
- @Version: v1.0
4 V* R2 b& z$ U - @BBSid: 7171-147 ?4 I# R' b( E" k& c- l+ a. N
- @Level: B0 T7 S) l6 R4 P" q0 z$ v4 t
- ---------------------------0 C/ B: F7 Y0 A% U8 u
- 《画黑白阴阳图(太极图)》
0 {, I+ ?- _5 | C4 A6 a; o" @6 N - ---------------------------
( J$ w J5 P; i3 \ - 改进信息:考虑到超市为了更好地制定营销策略,可能想知道关联次数为任意值的商品对功能,
( g. G6 N# P) G0 @8 T - 我们增加了一个查询关联次数的功能。
0 K) K/ J# t5 s2 A - """
4 v0 ]8 z% Q4 s- `& t - print("+----------------------------------------------------------+")% S6 b7 ~/ D8 C* y2 x) h4 o/ }
- print(">>> 新大榭Python文件启动程序(py文件双击) V1.2.21.0727 ")% g( b1 W% |, r7 N
- print("+----------------------------------------------------------+")8 v4 {- E% h+ E( v3 J3 E. Y- k
- print(">>> 新大榭Web实验室 http://lab.daxie.net.cn/ ")+ E% y4 ?$ k( G$ |' F& g
- print("+----------------------------------------------------------+")% ~6 `; H# N- f4 p
- print("↓↓↓ 《画黑白阴阳图(太极图)》")
' p# W' |8 Z$ g - print("+----------------------------------------------------------+")6 Z0 `4 V4 i/ y, n$ p
- 7 P/ p/ M( {8 i4 U7 r' Y
- # 以下为主程序核心代码 ↓↓↓
+ m) G. N; N8 z# `) M, w5 I - ; G6 }) {: q+ N; A$ q& N$ e
- import turtle as tt
- M0 ~8 Q. ~% E6 U H3 M5 g0 w2 w* s) ~9 z - import math
1 L5 Z1 s% v3 ~2 e; N$ e b* } - " {% R% z* H& ^, K N7 k$ J& ?* O
- tt.TurtleScreen._RUNNING = True # 启动绘图,在IDE中运行加这句可避免报错
- k4 W# R3 X! `
" t& p: S- B v# D0 s2 w- r = 100 #设置大圆的半径6 \( M2 _+ V3 O4 [( C
- angle = 180 #设置圆心角
* f9 c& [5 J3 C$ }9 w I& }1 E - tt.color('black', 'white')#设置画笔和填充颜色; i. w o$ n$ f9 D+ [
- tt.begin_fill()( [' e& Y, v9 d% n4 c1 e
- tt.circle(r, angle)#画一个白底黑边的半圆% E8 B( h3 r/ K( K
- tt.end_fill()4 k4 o+ g. ~. o j( A& H6 M% f
7 k N: d$ m; {- tt.color('white', 'black')
9 S& u9 X: o: R7 `9 S, C - tt.begin_fill()
3 \8 o) l- j0 n& W) T - tt.circle(r, angle) #画一个黑底白边的半圆
1 |' F& o5 @1 s - tt.circle(r/2, angle)#继续画一个半径减半的半圆
; Q3 N% _ K% O" F- N; X - tt.end_fill() #将上述两个半圆填充成黑色
9 f, _- t, d- p7 ~* F( F* [' V - $ l1 y$ s9 \7 L+ x9 `9 ]2 L
- tt.penup(), ]1 I/ q0 S- n: e
- tt.goto(0,200) #将画笔定位到适当位置) _0 f5 E! A) d6 Z( v: A# C
- tt.pendown()
/ Z( D. d, P4 f3 @ - tt.color('black', 'white')( i# ~& K+ q a# F, f# J5 o% S+ F
- tt.begin_fill()& [; [$ \, J6 X! A
- tt.circle(r/2, angle)#画一个白底黑边的小半圆* \% e! {1 V# y0 g% ~' @8 I
- tt.penup()
; u. ^$ s6 y/ N7 N9 M9 d - tt.goto(0,37.5), N/ Z9 V1 Q( ]: O5 X; W- n
- tt.pendown(): N: Q; H/ P! Y: t6 G6 w8 ~6 h" E* R
- tt.circle(r/8, 360) #继续画一个半径更小的圆
9 B& G4 n- n" [' u - tt.end_fill() #将上述两个半圆填充成白色" Y3 H8 p/ M+ V* @0 t4 r
& S6 S6 i/ D2 e+ K3 B5 c7 A8 c( o- tt.penup()
; [. w; b) o) ~4 C/ g - tt.goto(0,137.5)
6 ]6 F1 ^/ g. T6 h% e9 p - tt.pendown()# K: F8 u: j/ X/ i2 Y
- tt.color('white', 'black')
) ?$ j b+ T$ q& o - tt.begin_fill()
' i" A7 e O! {/ Q% a - tt.circle(r/8, 360)#最后画一个白底黑边的小圆- D* r; ~" M, d
- tt.end_fill()7 a& v; P, P/ B G# W8 ? i) q
- 9 x- q" U( a/ g4 c: {/ M/ }: |
- tt.hideturtle()#隐藏画笔,使得图像看上去更完美
7 R6 f, N2 ^" @3 |. s - 7 g- R ?, ^& L+ Z% q
- tt.done() # 结束绘图,这将不会关闭窗口4 V# z+ z5 V% C7 Q6 j+ F! u
- 0 y0 Q& b, \" m( p
- # ↓↓↓ 以下代码优化与答题无关,可屏蔽IDLE程序意外退出!
: E' T2 i9 M q1 J
- Y: u* C5 `/ ^* R+ r1 {- print("┏----------------------------┓")
/ V8 }) a7 e; `/ j! }7 A% O - print("┣--- 按下回车键即退出程序 ---┫")6 g' ^8 J) T( u& t
- print("┗----------------------------┛") 2 E/ ]; h6 e4 x8 c E
- input(">>>")
复制代码
4 v8 k' c! O( D+ C) t, Z9 U8 e |
|