新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

新大榭软件管家 V5.8 Excel版 微信版 发布 财务/仓库/生产/销售/采购/行政/人事/校园 客服中心 - 办公软件 - 网站设计 - 广告招商

新大榭镜像 - 官方Web实验室 - 加入收藏 - 设为首页 广告是为了更好的发展 欢迎我区企业及商家赞助本站 首页文字黄金广告位(赞助)公益广告免费发布

查看: 242|回复: 0

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

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

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

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

x
题目:一个最优美的图案。- c4 r! l# |9 r; N9 S: K: Q8 P
程序分析:无。( w8 ^0 ~! U) `- {( V- C
  1. import math1 q( V+ \9 U% p- V: K
  2. from tkinter import *; r0 j+ N6 G$ V/ I; Z

  3. ! t3 n% r+ O/ m0 w. F6 W- {
  4. class PTS:4 w0 a0 w* K4 N% u, B' N, m* U
  5.     def __init__(self):: L% D5 W' ]: F1 w+ C
  6.         self.x = 0% Q/ G, I( |. j* K
  7.         self.y = 0
      {, @% W& w6 F; k
  8. points = []  ^3 s( o$ E* K- {: S+ Y5 [2 J

  9. 3 x% B. I# ~$ W, L2 A/ C
  10. def LineToDemo():
    1 Q8 K& g& {: |4 I  u* l
  11.     screenx = 400
    : \5 x5 y. k9 j. E$ d
  12.     screeny = 400
    + N( R3 W2 z) m5 w' u
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')9 T9 X2 O) y7 p1 @

  14. 2 V: x2 v* w5 ?/ L
  15.     AspectRatio = 0.85+ C& d* m3 `3 X+ J4 ^
  16.     MAXPTS = 15$ k! ~7 q7 ]8 ^4 X2 F! r( E
  17.     h = screeny
    3 I4 X: H' V9 [5 }
  18.     w = screenx4 U' W) V: q  r  G0 P: W& G
  19.     xcenter = w / 27 c7 u* ]" |; v. N% I
  20.     ycenter = h / 2
    7 k! e0 t& B: u6 l
  21.     radius = (h - 30) / (AspectRatio * 2) - 20% S: Y  c# I) h. ^( r" ?- P
  22.     step = 360 / MAXPTS# D! Q  e* Y8 \6 {
  23.     angle = 0.0
    ) k+ K! L6 N& _# s7 S6 a! Z: m
  24.     for i in range(MAXPTS):
    : D9 I5 }8 H! ?" g
  25.         rads = angle * math.pi / 180.0  P+ U! a& z6 u7 K8 h) L. ~. ~& q
  26.         p = PTS()
    9 Q- Y) f) S9 G. e
  27.         p.x = xcenter + int(math.cos(rads) * radius)" j( r3 t) a0 S% D+ V$ f" s; c
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)  H" X; d! v1 g# {! R% s
  29.         angle += step. w: G+ [& v* }/ L$ G
  30.         points.append(p)
    ; _9 A, E4 N- P+ k/ S
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,6 O  n* p1 l& H2 P; R3 d& o
  32.                        xcenter + radius,ycenter + radius)
    ( k" D; Q( _' S' }  C8 W
  33.     for i in range(MAXPTS):  P( p( C2 A& W) [- [% H' ]2 Y2 F; U
  34.         for j in range(i,MAXPTS):
    , G+ c, X4 o: o% h
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
    3 e, [6 q! j( u

  36. , v& |  K! V- U2 [+ M6 i- _
  37.     canvas.pack()
    + H$ x) E7 s5 C8 Z
  38.     mainloop()# O, B0 i% K7 }
  39. if __name__ == '__main__':$ [, A: [) l: @: t4 ?% b
  40.     LineToDemo()
复制代码
新大榭Python学习社区公益培训、Excel业务指导、办公软件定制、网站建设、网络安全;新大榭Web实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新大榭七周年,感谢由您!

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

GMT+8, 2024-6-2 18:38 , Processed in 0.069521 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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