大蟒蛇python教程共享Python简单几步画个钻石戒指

一、效果演示

Python简单几步画个钻石戒指

二、制作步骤/过程

(一)绘制戒指

使用tkinter的canvas画布绘制8个点,然后把这8个点使用canvas.create_line()划线函数用直线连接起来形成钻石形状。为了增强效果让钻石旋转起来,使用while循环,每隔一段时间重新绘制钻石,但绘制的起始角度偏转11.25度,这样运行程序钻石看上去就旋转起来了。

绘制好钻石后,再使用canvas.create_oval()绘制两个椭圆作为戒指环就可以了。

Python简单几步画个钻石戒指

(二)绘制雪花

只有戒指单调了一点,来给画布添加点雪花。这里使用random.randint()函数每隔一段时间随机绘制50个10px大小的白色正方形,并绘制在画布上,这里看起来就好多了。这里绘制正方形使用到了canvas.create_rectangle()函数。

Python简单几步画个钻石戒指

三、完整源代码文件

import time,random,math  from tkinter import tk, canvas  # 打开窗口  def open_window():      _root = tk()      _root.title("七夕,用python给你送个钻石戒指")      _root.config(bg='black')      # 设置画板      _canvas = canvas(_root, width=640, height=380, bg='black')      _canvas.pack()      # 待窗口创建后,2秒后执行动画      _root.after(2000, paint_canvas(_root, _canvas))      _root.mainloop()  # 启动动画函数  def paint_canvas(_tk, _canvas):      # 设置钻石开始角度      _start_angle = 0      # 设置存放钻石八个点x,y坐标的列表      _list_x, _list_y = [], []      # 设置钻石八个点之间的角度_angel,钻石中心点x,y坐标_x_center,_y_center,钻石半径_r      _angle, _x_center, _y_center, _r = 30, 320, 120, 50      while true:          # 清空画板          _canvas.delete("all")          # 画戒指          paint_ring(_canvas, _start_angle, _angle, _x_center, _y_center, _r, _list_x, _list_y)          _list_x.clear()          _list_y.clear()          # 从新计算钻石开始角度          _start_angle = (_start_angle + 11.25) % 360          # 画星星          paint_star(_canvas)          # 动画刷新时间间隔          time.sleep(0.05)          _canvas.update()          _tk.update()  # 画戒指函数  def paint_ring(_canvas, _start_angle, _angle, _x_center, _y_center, _r, _list_x, _list_y):      _canvas.create_oval(180, 110, 460, 280, outline='white')      _canvas.create_oval(190, 130, 450, 275, outline='white')      for i in range(12):          _list_x.append(_x_center + _r * math.cos((_start_angle + (_angle * i)) * math.pi / 180))          _list_y.append(_y_center + _r * math.sin((_start_angle + (_angle * i)) * math.pi / 180))      for i in range(12):          for j in range(12):              _canvas.create_line(_list_x[i], _list_y[i], _list_x[j], _list_y[j], fill='white')  # 画雪花函数  def paint_star(_canvas):      # 随机生成不超过画布长、宽的50个正方形点      for i in range(50):          x = random.randint(0, 630)          y = random.randint(0, 370)          _canvas.create_rectangle(x, y, x + 5, y + 5, fill='white')  if __name__ == '__main__':      # 打开程序窗口      open_window()

到此这篇关于python简单几步画个钻石戒指的文章就介绍到这了,更多相关python钻石戒指内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多python教程分享Python简单几步画个钻石戒指,都可以关注python教程分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/pythontutorial/1236437.html

(0)
上一篇 2022年9月6日
下一篇 2022年9月6日

精彩推荐