新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1041|回复: 0

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

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

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

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

x
题目:一个最优美的图案。. t0 V& A2 U6 c! P- T% ]$ a
程序分析:无。% v* T2 X4 h# ]! |+ U
  1. import math
    . K# v; [# e7 y8 [+ c$ \5 e
  2. from tkinter import *6 m8 [4 {# s* V( d; ^# Q0 n% V
  3. 3 }4 R4 r: w2 O$ ?
  4. class PTS:% e3 t/ A. A# t! ?
  5.     def __init__(self):" l$ p. C  v3 }* V& ^% a
  6.         self.x = 0, H2 X) t. w$ B2 k! R8 Y  L
  7.         self.y = 0
    8 B1 ?( ]5 {$ L
  8. points = []
    ' ?- p$ P& t) B3 R" R4 n2 A6 X: N( M
  9. # b( u: ~4 a, D# {
  10. def LineToDemo():1 }; I9 ^0 K/ ^5 O/ n  t
  11.     screenx = 400
    " O1 A. ^0 Y& w* `$ C
  12.     screeny = 400
    6 K- @& n! D! A1 h7 O5 Q% l
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')6 h3 e/ s5 T. U  }. t1 _

  14. " k4 x  l7 G/ k, h8 [3 d# Y1 U
  15.     AspectRatio = 0.85" y1 l. B; }& \2 E4 N! c* S8 v
  16.     MAXPTS = 15
    , J; u3 X5 ~. Z' T6 a
  17.     h = screeny# u  H. p1 m8 j
  18.     w = screenx
    9 W: o4 R2 J% W2 j+ [, B
  19.     xcenter = w / 27 e' c, \7 R- r' |
  20.     ycenter = h / 2) d+ t/ Y. Y* @& m* W) S' {
  21.     radius = (h - 30) / (AspectRatio * 2) - 204 l6 \; d  O2 p& q) w2 l, J0 o
  22.     step = 360 / MAXPTS
    $ G$ ]6 R7 x+ ^+ c; r+ x
  23.     angle = 0.05 e8 t; C+ a9 `
  24.     for i in range(MAXPTS):1 T, p2 Z- a. @2 ?6 v" G% j+ X/ m8 M
  25.         rads = angle * math.pi / 180.0
    ) h3 d$ |  a1 W$ g! _$ k0 Y
  26.         p = PTS()
    6 K9 A% E: |0 Y. V4 j
  27.         p.x = xcenter + int(math.cos(rads) * radius)' K! W; u- n' p  x1 N  w  `9 z
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)* K, L1 c. M# t. x9 P+ Y
  29.         angle += step
    1 ]8 L+ O/ O' W4 @+ n  }
  30.         points.append(p)# |- f# _. i& J( q6 I
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,& T5 G  a4 S, u; D
  32.                        xcenter + radius,ycenter + radius)
    ! A; E/ `1 b) e' W' ]4 W5 y
  33.     for i in range(MAXPTS):
    9 d1 N/ v" M0 [. _! T3 b! I
  34.         for j in range(i,MAXPTS):
    % y2 ?+ V7 Q8 v) z+ D
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
    1 f( a- w+ R/ x+ V8 r0 w

  36. 1 x. Y4 n2 X  ^3 ^& }
  37.     canvas.pack(); h8 D# E* {, w1 O- C0 b: F
  38.     mainloop()' w" y) U+ h4 D! [( V
  39. if __name__ == '__main__':
    6 ]# m% w8 u# L$ p- ^" J
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-11-11 19:15 , Processed in 0.070865 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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