新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 951|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
3 U( ]6 n* U6 y" J( }: D$ R' I程序分析:无。
0 A0 ]$ Q5 \8 ?! G& W8 V9 C
  1. import math
    & }+ f9 N( e# h( Z! v
  2. from tkinter import *; D' W0 x, u* c0 \  M- y) H

  3. ; I( Y% N3 ]2 l9 \% g
  4. class PTS:0 s1 s' X" D( ~6 R" |8 r, @% n4 e* b
  5.     def __init__(self):
    ) o$ v+ K  M+ I+ S7 Z( L
  6.         self.x = 0$ S0 n- [$ A( K- ~
  7.         self.y = 07 o. b- Z' S1 {6 W
  8. points = []
    4 u: f' R' X8 r8 D
  9. 8 k" l9 o: Y- w
  10. def LineToDemo():
    ; f+ N) Y0 z- b: A6 p
  11.     screenx = 400
    ! J8 j& H. i0 E4 j# b
  12.     screeny = 400) ]7 g, k+ J! n9 y% d2 w  c
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')
    # p! G& I5 _" ^. i, C: e$ h

  14. 7 J& f: ~0 j/ l2 g0 E
  15.     AspectRatio = 0.852 p1 {) K, A- z7 I( J( a
  16.     MAXPTS = 15
    ! x6 Y' L2 d: t2 ~: g7 F2 q! r- V3 D
  17.     h = screeny0 B3 @* v, W8 p4 Y
  18.     w = screenx5 Z- c- j& {8 f* O) O7 j& p2 s
  19.     xcenter = w / 2
    ' B" M* ^  j$ u' X  ~
  20.     ycenter = h / 2
    # |9 X# e+ Z& f7 p7 |9 l
  21.     radius = (h - 30) / (AspectRatio * 2) - 20
    " s3 W. y" G! ?$ j8 b" ^7 l
  22.     step = 360 / MAXPTS
    5 k9 X2 `8 x5 v" u  s8 Q" F
  23.     angle = 0.0
    8 I. B# j/ K  b
  24.     for i in range(MAXPTS):# a! a/ o0 J) D% Y9 j
  25.         rads = angle * math.pi / 180.0
    : F6 r7 `7 c5 u: |* r, ~8 l$ ?" q
  26.         p = PTS()
    & q; A' k, [8 s) P6 c
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    - _& `4 M! [" p% g9 T3 N( `" n/ F; J
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
      ]7 s; i3 `* m, q2 y. Q3 F5 j
  29.         angle += step% h3 ?* O4 w( c+ N# O- ~
  30.         points.append(p)
    " x. K# y$ R  `- Z0 E2 U
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,0 K  V0 U; Q& O( \
  32.                        xcenter + radius,ycenter + radius)
    # N; J( H" W6 `! ?7 Y) d: E; s
  33.     for i in range(MAXPTS):% @7 h9 f0 i/ o* w7 L
  34.         for j in range(i,MAXPTS):+ e4 r5 \8 T; v
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
      d" l8 ?: T6 [8 {
  36. ! \7 n8 i4 z+ F
  37.     canvas.pack()" m) U! O  a: ~! J2 e8 m  s3 N, P" w
  38.     mainloop()
    1 ]  v% a4 P& T. P1 Z7 o' B$ V
  39. if __name__ == '__main__':
    2 f$ ~1 _" ^. |4 P1 v* p
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-17 14:50 , Processed in 0.089999 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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