Python 练习实例59

[复制链接]
 楼主| cooldog123pp 发表于 2021-8-28 14:05 | 显示全部楼层 |阅读模式
题目:画图,综合例子。  
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。。
程序源代码:
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-

  3. if __name__  == '__main__':
  4.     from Tkinter import *
  5.     canvas = Canvas(width = 300,height = 300,bg = 'green')
  6.     canvas.pack(expand = YES,fill = BOTH)
  7.     x0 = 150
  8.     y0 = 100
  9.     canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10)
  10.     canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20)
  11.     canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50)
  12.     import math
  13.     B = 0.809
  14.     for i in range(16):
  15.         a = 2 * math.pi / 16 * i
  16.         x = math.ceil(x0 + 48 * math.cos(a))
  17.         y = math.ceil(y0 + 48 * math.sin(a) * B)
  18.         canvas.create_line(x0,y0,x,y,fill = 'red')
  19.     canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)
  20.    

  21.     for k in range(501):
  22.         for i in range(17):
  23.             a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k
  24.             x = math.ceil(x0 + 48 * math.cos(a))
  25.             y = math.ceil(y0 + 48 + math.sin(a) * B)
  26.             canvas.create_line(x0,y0,x,y,fill = 'red')
  27.         for j in range(51):
  28.             a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1
  29.             x = math.ceil(x0 + 48 * math.cos(a))
  30.             y = math.ceil(y0 + 48 * math.sin(a) * B)
  31.             canvas.create_line(x0,y0,x,y,fill = 'red')
  32.     mainloop()
以上实例输出结果为:

tk4.jpg

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2224

主题

7456

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部