新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 969|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
8 h) G+ q3 l0 F5 e$ k6 i程序分析:无。
! [5 Q+ }. l3 L6 A, c1 f: m) j# Q
  1. import math
    3 w) e: {2 O8 h2 i5 O
  2. from tkinter import *
    1 }( A  Z( e; c: W

  3. & Q" x/ H$ T2 @* }& Z  L5 n
  4. class PTS:
    . V7 D& \6 f! X+ `
  5.     def __init__(self):! J% I8 T! R2 s$ ^- D! c
  6.         self.x = 0
    2 U* I/ U; q; [3 l
  7.         self.y = 0
    - E+ g, s' @# p  X% w$ A
  8. points = []
    + h6 m, n' x% |! y6 j$ e; a

  9. 8 u- k: }! T9 R  _( e
  10. def LineToDemo():% E& a' X; F5 |7 ?
  11.     screenx = 400
    3 Q% o3 _- c# t* v- M% q
  12.     screeny = 400+ n3 I  g9 ^! m9 w* u
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')7 x& V" o, T8 T! n5 f

  14. 0 K7 X" _3 D' a7 m9 z% z* o
  15.     AspectRatio = 0.85
    " M6 U$ h0 A6 e% R( _
  16.     MAXPTS = 15! x' L) \. o' z9 s2 ^
  17.     h = screeny
    ( [5 \" k  I. v3 C
  18.     w = screenx+ b2 w; f% \+ Z6 u5 {2 @
  19.     xcenter = w / 29 P" h% M- X% c' P
  20.     ycenter = h / 2
    % m( c( J, O; a. j7 g. I  a
  21.     radius = (h - 30) / (AspectRatio * 2) - 20
    , V9 H% A+ M7 R5 r. P5 O
  22.     step = 360 / MAXPTS9 k' m  U# |% n8 @7 ]
  23.     angle = 0.0
    & o( m( }! k  e, D) T) U
  24.     for i in range(MAXPTS):# M. o/ R( y5 N1 b: F0 o# Q
  25.         rads = angle * math.pi / 180.0
    . s$ f. J4 L& k- V
  26.         p = PTS()
    9 D' M( W* F$ k+ r  y3 W
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    & Y  o: [" z% F8 w6 A% r. I4 Z# p
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
    5 z3 {4 O0 q9 `; C, [
  29.         angle += step! ]5 o4 [: l4 I7 @- w: R
  30.         points.append(p)
    2 T6 v* Z5 q6 J
  31.     canvas.create_oval(xcenter - radius,ycenter - radius," s* h. z4 _$ l. x
  32.                        xcenter + radius,ycenter + radius)
    6 ~! _* P$ l' F. V5 c8 U1 X
  33.     for i in range(MAXPTS):5 O( T$ F' Z2 |8 K
  34.         for j in range(i,MAXPTS):: j" K$ c' y2 h% l& P  E5 |5 I
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)3 l- V  G. [3 X: a

  36.   I2 k' S8 O) O. k
  37.     canvas.pack()6 h0 D+ D" N1 g$ V; T
  38.     mainloop(), {; b) J2 |0 f% E1 q) [8 Z0 V
  39. if __name__ == '__main__':1 p. F' L8 V1 |, c
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 09:41 , Processed in 0.083668 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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