新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 952|回复: 0

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

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

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

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

x
题目:一个最优美的图案。
1 r" U' o2 X" D3 U程序分析:无。
4 B; v- P1 s( X& R" r- g
  1. import math8 A! K  g4 I: U) B" A' [
  2. from tkinter import *5 B! W, ]7 ~6 B1 J, N5 X

  3. & s8 p) [# M0 [  l2 N# P
  4. class PTS:  s; C& n5 _- S: u. K7 M2 J0 R
  5.     def __init__(self):
    ' ]! V1 T& F: ?
  6.         self.x = 0& R$ R, A8 F( ~" ]8 e+ m
  7.         self.y = 0
    ' ?7 h! N! e5 F+ B
  8. points = []; {# x0 A; R* z2 q

  9. + Z7 z$ ~% `0 d& L$ l4 z/ V& D
  10. def LineToDemo():
    1 j5 _% n. h- Q; ?: u+ `: {
  11.     screenx = 400
    8 j" L, f1 G5 ~/ M+ E
  12.     screeny = 4003 x  W" s; f4 @% J3 I! O/ `5 U5 G' r
  13.     canvas = Canvas(width = screenx,height = screeny,bg = 'white')9 B; O% W9 j: Z5 m( J
  14. # R/ d) w9 @/ A' C7 J3 X
  15.     AspectRatio = 0.85
    5 g9 Z& {( O9 l+ x
  16.     MAXPTS = 15
    1 w  E6 ~# ~- w2 v6 [
  17.     h = screeny8 _; _& {) T8 \3 T9 Q# N" t6 |
  18.     w = screenx
    $ Q( N& h( d" [' r. s. A
  19.     xcenter = w / 23 @' r1 S" r/ S. [. M' C
  20.     ycenter = h / 2
    * a1 d6 a: N/ F& s' a
  21.     radius = (h - 30) / (AspectRatio * 2) - 20/ W/ ~% q" l# l- A
  22.     step = 360 / MAXPTS1 f& G* c( U. Q$ o/ X3 b' G/ A
  23.     angle = 0.0
    9 H8 ?6 j" Q) q' V0 @
  24.     for i in range(MAXPTS):! s0 V- |1 `, }. z1 T2 c
  25.         rads = angle * math.pi / 180.0
    6 v  q9 c& t/ L/ ^6 t- y8 I" `
  26.         p = PTS()/ J1 |# b! B! A) g$ C* G
  27.         p.x = xcenter + int(math.cos(rads) * radius)
    7 n, y8 B# k( e9 |' g3 `1 f, H
  28.         p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
    % P& Y9 ^6 R2 L
  29.         angle += step
    ; g/ z; i$ R3 J  J6 M2 `9 h6 g
  30.         points.append(p)# J* h6 E; x) G
  31.     canvas.create_oval(xcenter - radius,ycenter - radius,
    " r; A/ [: C4 k, v( w, B  ?" s  y3 f
  32.                        xcenter + radius,ycenter + radius)2 m- X& f2 z. h' X" p5 e4 c4 s1 p
  33.     for i in range(MAXPTS):% X' u0 Q; C7 W/ F
  34.         for j in range(i,MAXPTS):
    + [( L3 |4 j5 n8 z* i
  35.             canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
    % ]3 V8 Z# i, @. ^' c. L3 z8 H
  36. 8 y& A* {# r& g+ i
  37.     canvas.pack()% \1 w# ^" r& a; K
  38.     mainloop()8 u  ~- y; \5 M; i, [$ c- t$ G
  39. if __name__ == '__main__':4 `8 P9 p4 c; W
  40.     LineToDemo()
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-18 23:14 , Processed in 0.088535 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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