新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 950|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
) M: H+ C7 r. _- Z3 l5 W程序分析:无。
6 a$ R1 A, ~0 u8 k
  1. import math
    3 R) U& Y2 c5 s7 M# Y5 t  c* r
  2. from tkinter import *1 B" e! N8 N& h" L; s/ u0 Z  g0 m
  3. - y% h: O/ f" H% a5 d- W5 C
  4. class PTS:
    * G7 l4 X6 W6 U; N5 L7 R, A
  5.     def __init__(self):% D2 y8 F3 ]  X
  6.         self.x = 0
    2 k7 Q* q, w  H0 c
  7.         self.y = 08 e6 A0 Q3 V& l8 Q( s
  8. points = []
    : e9 ?% i7 J  \$ Q

  9. 1 }  b! G5 K6 l. O! K* e
  10. def LineToDemo():/ F4 D& Z8 t! O2 ^: s: Y& C
  11.     screenx = 4009 W; U; \! p, n* ]1 G6 v
  12.     screeny = 400
    ; H& V& V! Q- X/ Z
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')
    7 J: y/ v8 t* A+ p! a) `

  14. + m8 E) b: p7 O5 c' A% J3 E
  15.     AspectRatio = 0.85
    " c5 A) v& W& F4 Z& H
  16.     MAXPTS = 150 Y; D+ I# P& z, W' `
  17.     h = screeny% @1 M% {; e; j& n( [' \
  18.     w = screenx
    ' s- h. H$ Y& @, O# U' [
  19.     xcenter = w / 2" V' i' |& ^4 [' Y
  20.     ycenter = h / 2
    # R" J2 l# ~3 l% ^% {
  21.     radius = (h - 30) / (AspectRatio * 2) - 20  g; a  p+ x+ h! C/ V9 t* b2 g
  22.     step = 360 / MAXPTS+ ^' D% d8 m2 J
  23.     angle = 0.0
    # \8 p& u) V' ^6 t7 X6 q' X" M! W
  24.     for i in range(MAXPTS):
    7 T5 Z1 F# q* L6 E5 S
  25.         rads = angle * math.pi / 180.0% ?1 C  S# K* g( l1 t) I" e$ X
  26.         p = PTS()' ]% }& ^# F( K0 S
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    7 H! w1 O$ V* i; r8 n7 G8 Q. b6 ~
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
    4 I( b9 w  d3 E
  29.         angle += step/ [) Q  R! Q  s% U% S3 g
  30.         points.append(p)
      {# D1 [5 P  z1 G# p7 J" O, W/ g$ x! e
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,
    2 E: O3 j+ s2 x5 @' Z
  32.                        xcenter + radius,ycenter + radius)# q) U4 Q% x( J3 F/ [( b
  33.     for i in range(MAXPTS):
    ( i* z- M; z$ ]; B3 Y+ Y
  34.         for j in range(i,MAXPTS):0 j" ?& \4 [  `7 H
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)8 p6 Y8 ~4 f6 R3 }' w7 T+ t

  36. ( n5 h- J' K8 ^
  37.     canvas.pack()
    1 P' q8 @# E6 S' w" F0 J  `
  38.     mainloop()) |! X7 }9 _: u4 `
  39. if __name__ == '__main__':
    ! q& }( G2 @0 e
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-17 13:26 , Processed in 0.090761 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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