新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1001|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
. n$ j. Y5 m4 T) {9 w8 n# R程序分析:无。
5 m6 |! J' G2 n4 {/ p0 T
  1. import math3 h9 V- C% Q! ?9 k
  2. from tkinter import *0 k6 X7 }( ?* R# w

  3. , C8 K: z: ], O& r% ^0 `
  4. class PTS:
    0 ~9 q8 J( R2 r7 K
  5.     def __init__(self):! M; Z# u) l# h) M
  6.         self.x = 0
    2 b/ p5 U4 N& G- s
  7.         self.y = 09 `3 J/ |1 e+ q$ `" H
  8. points = []6 S( h  G% c( v/ I6 v6 W* i

  9. + {# D  `1 H8 o  F' B: G
  10. def LineToDemo():
    + C0 O6 [- B  D% j
  11.     screenx = 4003 ~# @* Y! T- ^* T
  12.     screeny = 4003 T* g2 R# o3 b4 W+ E& l
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')3 k7 r! w/ X2 D  M0 w
  14. + g7 e; I& z" s  p3 {5 t- f  V
  15.     AspectRatio = 0.858 V8 ^9 l2 f( w4 P! s7 m5 Z
  16.     MAXPTS = 154 H5 r' ]0 ~1 j  n4 w2 R8 T! D* y
  17.     h = screeny
    : j! r% T  k$ }
  18.     w = screenx
    9 v- \0 L, a4 o
  19.     xcenter = w / 2, {; f& x! ?' W+ f, R; T! O# g
  20.     ycenter = h / 24 @8 T# w+ r+ Y( S" }6 v1 X
  21.     radius = (h - 30) / (AspectRatio * 2) - 20
    3 d7 x# Y# K+ q6 I
  22.     step = 360 / MAXPTS
    6 U: s3 B$ W7 f( P$ u9 f9 X( ?
  23.     angle = 0.0' C7 e( s1 o- k. Y/ P+ |
  24.     for i in range(MAXPTS):8 P: j1 g- L- \3 ]# C* q. I
  25.         rads = angle * math.pi / 180.0# U& q1 \. ^5 d- s
  26.         p = PTS(); c  C. w$ u: l' b- Z( s
  27.         p.x = xcenter + int(math.cos(rads) * radius)  G7 x# \" l& q# z2 `5 q) R7 v$ o
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
    2 `# V' l) j* Z2 c" F
  29.         angle += step! `9 M) R3 e0 H- k4 U5 y2 W
  30.         points.append(p)# l8 J2 ^6 W2 t" w8 K
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,+ r9 g! r& N8 f" y# r8 r# Q0 g
  32.                        xcenter + radius,ycenter + radius)
      O$ [( N+ u' J& Z( n
  33.     for i in range(MAXPTS):
    " d% |6 f6 s/ t  n0 C
  34.         for j in range(i,MAXPTS):1 N4 K: Y2 M( w5 w7 u3 J6 Y; u
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)7 f0 Z2 s: O" J# H* {" M- L8 {
  36. ; ^; Q; w* X; D. X. Y
  37.     canvas.pack()2 O1 C6 V7 p# \5 n
  38.     mainloop()
    . ?/ k+ ?9 _; ^5 C, F
  39. if __name__ == '__main__':
    8 a+ v8 U. U0 L1 u5 p
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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