新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

《新大榭》- 创大榭地方网络社区先锋品牌 新大榭始终专注于地方网络社区平台的建设 关于我们- [大记事]- 留言建议- [新手报道]

发布 .新大榭软件管家(Excel版) V6.0版 财务/仓库/生产/销售/采购/行政/人事/校园 .公告 - 客户 - 打赏 - 职场 - Excel - Python.

新大榭镜像-音乐-法律-图书-高中课堂-实验 广告是为了能更好的发展 [欢迎商家支持本站互利共赢] 广告位招租.首页黄金广告位等您来!联系 13566035181

查看: 1002|回复: 0

[题库] 7925 - [B]实例065:画组合图形

[复制链接]
发表于 2021-10-20 08:45:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!

您需要 登录 才可以下载或查看,没有账号?注册

x
题目:一个最优美的图案。
; ?" o! W/ L% E) k程序分析:无。5 m( B1 G* U, Z+ e; P4 i* ]8 Z
  1. import math
    $ m( Y+ P; N3 k* m/ u; L1 x
  2. from tkinter import *
    , V0 ~0 D# D; R  I1 Y% J, i& @
  3. 7 r9 X7 R, O  x- E- }' F: I
  4. class PTS:9 G/ w3 _9 t/ Z2 S; B, ~9 j
  5.     def __init__(self):
    " ~! |9 e% B. l
  6.         self.x = 0" W+ Y# ]3 \4 |5 \
  7.         self.y = 0
    : y. P/ `5 m- R7 r! F
  8. points = []
    ) W8 i6 e7 d: E9 |' G

  9. 5 F2 k( i* r" h( _: j
  10. def LineToDemo():
    ! ^# c3 D, y% `' O
  11.     screenx = 4008 T& n% q5 x! L7 k1 N
  12.     screeny = 4003 [8 T$ x; a; a/ W% l
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')
    - e- O; L. n% X: w+ S" o
  14. 0 V( u% i0 e8 H0 d/ M
  15.     AspectRatio = 0.85# G0 N+ q; e1 s  W1 v8 Q
  16.     MAXPTS = 154 `1 s8 o0 O3 L* C
  17.     h = screeny: b2 P# ]5 t  @- N) j
  18.     w = screenx/ g9 q, O8 v' h1 k
  19.     xcenter = w / 2/ q3 H/ r0 D: c1 G+ e1 o0 R& c
  20.     ycenter = h / 24 p2 |# ^9 L: @) D( o
  21.     radius = (h - 30) / (AspectRatio * 2) - 20
    9 K: Y* W( p. x5 o* G
  22.     step = 360 / MAXPTS
    5 w+ y3 g! g$ D" E$ M3 T3 Y$ G0 z
  23.     angle = 0.0  r, N/ E8 r; ]
  24.     for i in range(MAXPTS):. E5 ?2 v  k8 h% C/ l" ^
  25.         rads = angle * math.pi / 180.0
    - H2 m2 a! r' P  X
  26.         p = PTS()% S  h. t7 `; z, O
  27.         p.x = xcenter + int(math.cos(rads) * radius)" [& x/ n* z, U; W
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
    . w6 q$ A4 r6 W3 n0 [
  29.         angle += step$ x6 ]0 r# a  c5 f8 d4 L
  30.         points.append(p)3 Z) {6 h5 m/ u; J" @
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,
    8 m' |- i- E. i6 F$ Z1 q
  32.                        xcenter + radius,ycenter + radius)! ~( X" B  o; ]: u) V- W% a
  33.     for i in range(MAXPTS):! `9 u$ |" ~+ s5 o& b4 x; x" O
  34.         for j in range(i,MAXPTS):2 @9 l6 h+ x4 g2 m
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)8 |+ v. A( z# c( a- I0 R# W

  36. 0 S  Q. b) F' ?; P
  37.     canvas.pack()
    $ X" w: @- v+ }2 L3 m' l" X/ S
  38.     mainloop()$ B& V& s0 ~1 {3 y$ x2 q
  39. if __name__ == '__main__':, q  |' P5 H& A
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

文字版|小黑屋|新大榭 ( 浙ICP备16018253号-1 )|点击这里给站长发消息|

GMT+8, 2026-5-15 11:07 , Processed in 0.086765 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表