新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1003|回复: 0

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

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

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

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

x
题目:一个最优美的图案。: j+ A. q# a1 [: g
程序分析:无。% G' T! G7 k/ q7 u* p, h
  1. import math9 y1 M; H  A; j1 \& R2 j, \
  2. from tkinter import *
    7 V" y3 t1 M8 Y4 [: {  t7 R8 i
  3. . t# H7 P7 W8 F
  4. class PTS:
    2 A2 ^1 Q8 s( g& e) L# B6 C- O
  5.     def __init__(self):& u' y. @4 i+ ?0 q/ l3 v& N! V$ m& r
  6.         self.x = 0. C& _4 @! U4 ]) R' p9 a: u8 `" y
  7.         self.y = 0
    # B; e, k5 {5 |/ A
  8. points = []  ?1 T1 E6 A& @/ Z& A- x% n6 Z

  9. . L+ w( F) X5 p
  10. def LineToDemo():
    $ r. k* g2 E) A/ b9 [2 }
  11.     screenx = 400
    + L+ s  m2 m. Q% f% @+ u
  12.     screeny = 400" S' \4 c4 A% E0 y9 e9 B
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')$ t4 a# Y4 M$ M4 D: {/ H0 [) K
  14.   D6 x9 X, |, T4 H7 F9 |
  15.     AspectRatio = 0.85
    8 ~2 J* B. P4 U7 D( Q7 [! c
  16.     MAXPTS = 15
    : K" u5 Y2 r9 K4 X% ]! g
  17.     h = screeny- I0 l6 A5 Y1 B& P* m& J
  18.     w = screenx
    7 r  u7 s. B( F) q0 G
  19.     xcenter = w / 2
    * ~1 d  i4 B$ R4 Y) F2 d
  20.     ycenter = h / 2/ }* g* M! K% {7 l0 i. r
  21.     radius = (h - 30) / (AspectRatio * 2) - 20; d, A5 U1 [( A% C4 f! A
  22.     step = 360 / MAXPTS
      y; N' k+ s, Q) l' ~& Q
  23.     angle = 0.0
    ) N2 c: Z" O: u8 t* S* J3 u7 M
  24.     for i in range(MAXPTS):
    & {$ o7 u! ?1 Z" _, i* E! R
  25.         rads = angle * math.pi / 180.0% g) `3 z2 [  P# v5 b5 L" H
  26.         p = PTS()% y2 n6 M& f; P( d1 y5 g1 Z1 D
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    % G4 z& g# _7 k  \- R- y
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)' J8 P/ v/ w& {- S4 Q6 z5 j! I
  29.         angle += step% i; v2 u* y1 Y' X7 I2 Q
  30.         points.append(p)4 Q; H6 o1 {" v# H5 P
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,
    * O- H5 }' W9 r. e& @9 g
  32.                        xcenter + radius,ycenter + radius)0 C/ `3 M$ x, m0 v; l
  33.     for i in range(MAXPTS):% `' [9 ?* a4 h- f+ O4 f
  34.         for j in range(i,MAXPTS):1 L5 r+ Y" k6 A( Z
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
    & g3 G1 b2 t7 F# v9 ~7 C

  36. & Q1 f8 I0 X: j9 O
  37.     canvas.pack()
      o. M( g1 x4 G* P. f4 B
  38.     mainloop()8 `* P! R% z, b8 B% v, G( z' y3 m3 s. U
  39. if __name__ == '__main__':
    + g; f) M# w; @+ |. r
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 21:44 , Processed in 0.073099 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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