新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1008|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
2 h' W) [% z0 h5 d) C, k5 ^) S; H程序分析:无。- i. u) ~5 V! G8 |
  1. import math' o( l: R$ }( e# i2 C4 B; B, F
  2. from tkinter import *9 x; j1 c& i5 x. J( O

  3. 8 p% U7 ~$ d" r
  4. class PTS:
    , @; f! e- C" L* [
  5.     def __init__(self):& i$ G" X  ?; l% q) [3 B
  6.         self.x = 0
    : i- M) d  ]$ i, X. q+ z
  7.         self.y = 0
    7 W! z' I/ U: Y9 `  [2 R" g8 d7 s
  8. points = []- R: d* e8 ^/ [0 G- d' _0 I
  9. 6 D" U5 B" [4 ^  D8 d
  10. def LineToDemo():
    $ T! W7 S6 h6 |. [' [
  11.     screenx = 4000 F, ]) G: t+ W7 n/ L& A# ^' O) `
  12.     screeny = 400; p' D9 W. Q0 M2 V; w; Y
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')
    3 v% R, V/ h/ k2 M3 c, L9 j5 D
  14. 0 U7 R; Y3 J; i  x9 @) F8 q
  15.     AspectRatio = 0.85, p3 b9 r5 X7 R/ {7 s0 S7 M
  16.     MAXPTS = 154 r! e  }7 [4 T
  17.     h = screeny
    * _# Y; E0 w* N2 R8 Q" C
  18.     w = screenx
    % e, |0 q2 z: D- F3 g# R' o# ]
  19.     xcenter = w / 2
    $ e( I$ Y# X3 b) T$ J0 m' T
  20.     ycenter = h / 2
    5 g0 u# i' x* u6 k' G8 `7 x. w
  21.     radius = (h - 30) / (AspectRatio * 2) - 20. V' u! f% w  t$ ?" h/ t/ A2 \
  22.     step = 360 / MAXPTS+ o3 J$ O! R7 w, z. O
  23.     angle = 0.06 ^/ i4 v- T7 u3 N/ s) c7 w
  24.     for i in range(MAXPTS):2 ?0 p7 H8 k/ ^, {5 y' j
  25.         rads = angle * math.pi / 180.0
    0 \' a8 b, q. x
  26.         p = PTS(); ?- Y1 m9 N1 Q0 i6 o4 y4 A. q
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    - |7 d& W  `7 B2 |/ v8 F8 ?
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)1 V3 Y1 y' P3 c* B
  29.         angle += step8 v' F1 n! Z) K; ^* N
  30.         points.append(p)2 k* l: v* Z# L+ B; V, ]! {: Q
  31.     canvas.create_oval(xcenter - radius,ycenter - radius," P: {6 E( K2 N/ s4 i
  32.                        xcenter + radius,ycenter + radius)0 d: \5 U' T5 Z3 t- H
  33.     for i in range(MAXPTS):
    8 o! `9 g$ f* \& l1 l: m/ @
  34.         for j in range(i,MAXPTS):
    3 l8 a& M. n4 E0 j
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
    & C: G+ D5 U! w& X, d; p2 j# J( E/ Y. X

  36. * Q& {! K- a' ~1 k8 I- M0 X
  37.     canvas.pack()/ U( a. Y. d2 `
  38.     mainloop(); v% @5 @$ z3 J5 U+ E: W& t2 A+ G
  39. if __name__ == '__main__':3 Z! w5 B* Z, ^% R4 a) d1 p0 |$ V. W
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-22 00:47 , Processed in 0.067872 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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