新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1040|回复: 0

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

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

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

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

x
题目:一个最优美的图案。8 r! ?8 ?7 _2 S. k
程序分析:无。) ]$ O2 X$ ]" s$ Q, @8 C
  1. import math
    " @2 @9 `6 F- I
  2. from tkinter import *
    % o4 W& x$ l+ ^' {; i' H  T& o/ T
  3. 3 a; c' e6 V* k3 r5 z+ d
  4. class PTS:5 ?1 H- H: h0 s
  5.     def __init__(self):
    - @5 i. A9 D! v+ B
  6.         self.x = 0
    ; Q8 T5 p7 _* Z: Z0 l7 A
  7.         self.y = 0
    / d& n9 }7 }1 {' T  H
  8. points = []
    3 @- K8 A* \% z2 T; Y; `, J
  9. , c' S3 ~* E6 Z0 v8 t
  10. def LineToDemo():
    , ^( T$ r- |6 c# f2 a
  11.     screenx = 400# |) b3 |8 J$ `% ~
  12.     screeny = 400% `: s# O8 T8 J. G$ e
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')
    ( E2 v  n3 w" L8 U1 J- f0 |! o* {! |
  14. # m; ?! n0 L3 y0 u% Q  @
  15.     AspectRatio = 0.85# ?% s+ T* |) J# d: Y2 r9 G
  16.     MAXPTS = 15. _. ]; P/ ^, ^" [! \
  17.     h = screeny6 L. O& q. z9 R  N7 D
  18.     w = screenx4 J9 m6 i! O4 U' H8 |" c) u% g- j* R
  19.     xcenter = w / 2
    * R, ]/ I( v# X; y' e
  20.     ycenter = h / 2
      h; M- f5 s) Z
  21.     radius = (h - 30) / (AspectRatio * 2) - 20
    + O; o$ u: w7 t3 j+ S/ w$ b0 ^6 l
  22.     step = 360 / MAXPTS/ P, i5 O8 E5 A* o
  23.     angle = 0.07 y! J8 u! H$ z
  24.     for i in range(MAXPTS):2 o! u0 F8 f4 P2 g! Z2 p) [
  25.         rads = angle * math.pi / 180.0
    ; V" U3 h1 L" a5 \! {  l
  26.         p = PTS()( q/ C. y1 Q: d
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    9 ~- R" T! i% X
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
    / T4 i% R5 z  D& ]. z/ u
  29.         angle += step9 f: p/ Z6 e0 J" x
  30.         points.append(p)
    ' L5 k' |  |0 J  @
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,; i9 I; H: m1 D" D9 m8 j, d7 H
  32.                        xcenter + radius,ycenter + radius)4 i& x5 t" M5 {+ l. F2 x; I
  33.     for i in range(MAXPTS):+ W! b1 a9 `& q+ f: k
  34.         for j in range(i,MAXPTS):
    # s: _- g/ c! W7 L# l
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)6 ~. ?( U9 ~. O1 V

  36. * W$ n% E$ H- G, H7 W
  37.     canvas.pack()
    ) J- ]) O! L9 M# i- G
  38.     mainloop()
    / W5 B6 X8 X3 A2 N. e. r" d
  39. if __name__ == '__main__':; d9 f0 i0 T0 M! T- _1 d, e
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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