新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 970|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
& ^6 W7 d3 X/ f  l' e程序分析:无。( @3 [+ N7 D0 |7 a( y
  1. import math7 w  ]9 n! z+ F5 O0 J) i8 ^' ?
  2. from tkinter import *
    6 G2 N8 d4 T% ?% F  c; i

  3. & q& }. H  g- H. ^4 d
  4. class PTS:
    & j- J# {$ }" F' A2 u/ n
  5.     def __init__(self):
    9 Z# s; f  q& y* H! c7 M* X5 j2 H
  6.         self.x = 0: O( D, D& @4 X3 H
  7.         self.y = 0
    ' S4 ?" I: U1 ^& s; m1 R
  8. points = []
    8 {# ~3 C- f! O& v8 W1 A( W

  9. 7 Z4 K: O; W( O/ q9 {
  10. def LineToDemo():% I+ B# B  A* E, I7 s
  11.     screenx = 400
    1 G( f8 G3 c/ i2 X. p1 h( p: t
  12.     screeny = 4006 A7 [) J2 h5 Z% X$ Y  K- @
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')
    ! S! ^2 B  K3 c8 r$ o% R

  14. . ?; k: b) r+ h' i
  15.     AspectRatio = 0.85
    0 k+ {2 a* C2 ^: B0 j! l/ m0 f
  16.     MAXPTS = 15$ l( L/ t1 Z& r7 `5 {7 ~8 @+ }
  17.     h = screeny# M4 N$ Q" U/ u+ Q3 s
  18.     w = screenx0 @% _& R4 z9 D) H
  19.     xcenter = w / 2
    6 `3 O5 U" F( r9 G- ?
  20.     ycenter = h / 2  ~$ r) ]* E9 I3 `9 Q+ x
  21.     radius = (h - 30) / (AspectRatio * 2) - 20
    9 m: V3 V% P0 n) \  U. d* e- U9 `
  22.     step = 360 / MAXPTS
    / l0 G; y9 N* L$ K0 L, g2 u8 ?
  23.     angle = 0.0
    # g4 i. C& q$ Q7 G# B
  24.     for i in range(MAXPTS):4 a& _; n+ ~  V$ _9 s9 i' n) t
  25.         rads = angle * math.pi / 180.0
    / r9 V/ s# s8 ]9 P9 A3 m
  26.         p = PTS()# e' K) o7 U1 p' g. {- Y
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    ' J" X% z: U* A1 }8 [1 q8 P
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)- Y1 ]7 j& C0 H) T9 i
  29.         angle += step
    6 k, `6 E9 s; ?+ e! {* y9 I, ~0 j
  30.         points.append(p)- B! `$ u0 z  E( Z  m
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,8 [5 ]) R7 y6 S1 D' L% n
  32.                        xcenter + radius,ycenter + radius)
      r" {% W1 ]" l! d# ?8 C6 K, q4 v
  33.     for i in range(MAXPTS):: ?( k: P# d8 M
  34.         for j in range(i,MAXPTS):* r6 A. w$ a% B6 K! q3 l
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
    & B; J; r) r  [  S! d
  36. + T% }: H9 \; g2 I
  37.     canvas.pack()4 c1 b4 H& x8 ]
  38.     mainloop()" {+ c: ^3 C2 y) E
  39. if __name__ == '__main__':/ M( Z" }0 F( D( L
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 09:43 , Processed in 0.085768 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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