|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
题目:一个最优美的图案。
2 h' W) [% z0 h5 d) C, k5 ^) S; H程序分析:无。- i. u) ~5 V! G8 |
- import math' o( l: R$ }( e# i2 C4 B; B, F
- from tkinter import *9 x; j1 c& i5 x. J( O
8 p% U7 ~$ d" r- class PTS:
, @; f! e- C" L* [ - def __init__(self):& i$ G" X ?; l% q) [3 B
- self.x = 0
: i- M) d ]$ i, X. q+ z - self.y = 0
7 W! z' I/ U: Y9 ` [2 R" g8 d7 s - points = []- R: d* e8 ^/ [0 G- d' _0 I
- 6 D" U5 B" [4 ^ D8 d
- def LineToDemo():
$ T! W7 S6 h6 |. [' [ - screenx = 4000 F, ]) G: t+ W7 n/ L& A# ^' O) `
- screeny = 400; p' D9 W. Q0 M2 V; w; Y
- canvas = Canvas(width = screenx,height = screeny,bg = 'white')
3 v% R, V/ h/ k2 M3 c, L9 j5 D - 0 U7 R; Y3 J; i x9 @) F8 q
- AspectRatio = 0.85, p3 b9 r5 X7 R/ {7 s0 S7 M
- MAXPTS = 154 r! e }7 [4 T
- h = screeny
* _# Y; E0 w* N2 R8 Q" C - w = screenx
% e, |0 q2 z: D- F3 g# R' o# ] - xcenter = w / 2
$ e( I$ Y# X3 b) T$ J0 m' T - ycenter = h / 2
5 g0 u# i' x* u6 k' G8 `7 x. w - radius = (h - 30) / (AspectRatio * 2) - 20. V' u! f% w t$ ?" h/ t/ A2 \
- step = 360 / MAXPTS+ o3 J$ O! R7 w, z. O
- angle = 0.06 ^/ i4 v- T7 u3 N/ s) c7 w
- for i in range(MAXPTS):2 ?0 p7 H8 k/ ^, {5 y' j
- rads = angle * math.pi / 180.0
0 \' a8 b, q. x - p = PTS(); ?- Y1 m9 N1 Q0 i6 o4 y4 A. q
- p.x = xcenter + int(math.cos(rads) * radius)
- |7 d& W `7 B2 |/ v8 F8 ? - p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)1 V3 Y1 y' P3 c* B
- angle += step8 v' F1 n! Z) K; ^* N
- points.append(p)2 k* l: v* Z# L+ B; V, ]! {: Q
- canvas.create_oval(xcenter - radius,ycenter - radius," P: {6 E( K2 N/ s4 i
- xcenter + radius,ycenter + radius)0 d: \5 U' T5 Z3 t- H
- for i in range(MAXPTS):
8 o! `9 g$ f* \& l1 l: m/ @ - for j in range(i,MAXPTS):
3 l8 a& M. n4 E0 j - canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
& C: G+ D5 U! w& X, d; p2 j# J( E/ Y. X
* Q& {! K- a' ~1 k8 I- M0 X- canvas.pack()/ U( a. Y. d2 `
- mainloop(); v% @5 @$ z3 J5 U+ E: W& t2 A+ G
- if __name__ == '__main__':3 Z! w5 B* Z, ^% R4 a) d1 p0 |$ V. W
- LineToDemo()
复制代码 |
|