Python tkinter库之Canvas自定义直线函数画随机色彩圆盘
Python 函数 自定义 随机 Canvas 直线 tkinter 色彩
2023-09-14 09:01:28 时间
create_line() 需要两个点的坐标,若线段的一个端点作定点,另一个端点作某种运动,写两个点的坐标比较麻烦。如下图自定义一个画直线函数,以角度和长度为变量来作图相对要方便一些:
代码如下: 同样的时间间隔,看上去 Line1()会比Line2() “转得”快2倍,角速度前者是后者的2倍。
import tkinter as tk
import pyautogui as ag
import random
from time import sleep as Delay
from math import sin
from math import cos
from math import pi
def Window_Open(W, H):
X, Y = ag.size()
winSize = str(W)+"x"+str(H)
winPos = winSize + "+" + str((X - W) // 2)
winPos += "+" + str((Y - H) // 2)
win.geometry(winPos)
win.resizable(False, False)
title = u'桌面分辨率:' + str(X) + "x" + str(Y)
title += ' ' * 5 + u'窗体大小:' + winSize
win.title(title)
win.update()
def Line1(x,y,d,rad=0,c='black'):
"x,y 起始点坐标,d=长度,rad=与水平线夹角"
coord = x,y,x + d * cos(pi*rad/180),y - d * sin(pi*rad/180)
tCanvas.create_line(coord,fill=c)
def Line2(x,y,r,rad=0,c='black'):
"x,y 线段中点坐标,r=半长,rad=与水平线夹角"
coord = (x + r * cos(pi*rad/180),y - r * sin(pi*rad/180),
x - r * cos(pi*rad/180),y + r * sin(pi*rad/180))
tCanvas.create_line(coord,fill=c)
if __name__ == '__main__':
win = tk.Tk()
Window_Open(480,480)
tCanvas = tk.Canvas(win, width=win.winfo_width(), height=480, bg='white')
tCanvas.pack(side="top")
Color = ['red','blue','green','magenta','navy','lawngreen','orange']
for i in range(20):
for r in range(0,360):
c = random.choice(Color)
Line1(240,240,200,r,c)
tCanvas.update()
Delay(0.05)
Delay(2)
for i in range(20):
for r in range(0,180):
c = random.choice(Color)
Line2(240,240,200,r,c)
tCanvas.update()
Delay(0.05)
win.mainloop()
效果图:
相关文章
- python开发笔记之zip()函数用法详解
- 深入理解python中函数传递参数是值传递还是引用传递
- Python中的startswith和endswith函数使用实例
- 【问题解决方案】从 Anaconda Prompt 或 Jupyter Notebook 终端进入Python后重新退出到命令状态
- Python - 使用pycallgraph生成函数关系图
- Python内置函数reversed()用法分析
- 深入理解python中函数传递参数是值传递还是引用传递
- 【学习总结】Python-3-字符串函数-strip()方法
- [Python] Check for None (Null) in Python
- Python 四个可以和lambda结合使用的高阶函数
- 在python中调用shell命令并传递参数
- paip.python错误解决21
- 华为OD机试 - 对称美学(Java & JS & Python)
- 100天精通Python(数据分析篇)——第63天:Pandas使用自定义函数案例(pipe、apply、map、applymap、agg)
- python图像变形
- mac使用python识别图形验证码
- python常用内置函数整理
- Python标准库:内置函数chr(i)
- Python标准库:内置函数object()
- python里使用正则的finditer()函数
- Python学习笔记(十一)—— 函数式编程
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用
- python基础===通过菲波那契数列,理解函数
- 【python 7】OpenCV
- python函数
- 画【Python折线图】的一百个学习报告(三、自动生成单一数据折线图)
- python二级练习(7)