Python tkinter库之Canvas正方形旋转

简介: Python tkinter库之Canvas正方形旋转

canvas.create_rectangle() 只能画水平放置的矩形,旋转任意角度的矩形只能用 tCanvas.create_polygon() 来达成,如下图:

20210328221304422.png


旋转方式一:以左下角为定点,逆时针旋转a角度;


旋转方式二:以中心点为定点,逆时针旋转a角度;


以正方形为例, 画好坐标轴计算好各顶点坐标;


(若要旋转矩形,边长变量从一个变成长和宽两个,坐标重新计算)

计算好坐标后就可用create_polygon()写自定义函数,源代码如下:


import tkinter as tk
import pyautogui as ag
import random
from time import sleep as Delay
from math import sqrt
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 Rect1(x,y,w,rad=0,c='black'):
    "x,y 左下角坐标,w=边长,rad=底边与水平线的夹角"
    a=pi*rad/180
    coord = (x,y,x + w * cos(a),y - w * sin(a),
             x + w * (cos(a)-sin(a)),
             y - w * (cos(a)+sin(a)),
             x - w * sin(a), y - w * cos(a))
    tCanvas.create_polygon(coord,fill=c)
def Rect2(x,y,w,rad=45,c='black'):
    "x,y 中心坐标,w=半长,rad=对角线与坐标轴的夹角"
    a=pi*rad/180
    coord = (x - w * sin(a)/sqrt(2),y - w * cos(a)/sqrt(2),
             x + w * cos(a)/sqrt(2),y - w * sin(a)/sqrt(2),
             x + w * sin(a)/sqrt(2),y + w * cos(a)/sqrt(2),
             x - w * cos(a)/sqrt(2),y + w * sin(a)/sqrt(2))
    tCanvas.create_polygon(coord,fill=c)
if __name__ == '__main__':
    win = tk.Tk()
    Window_Open(800,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']
    w=50
    for r in range(0,1171,5):
        c = random.choice(Color)
        Rect1(180,240,w,r,c)
        tCanvas.update()
        w *= 1.004
        Delay(0.001)
    Delay(1)
    w=280
    for r in range(45,1216,5):
        c = random.choice(Color)
        Rect2(580,240,w,r,c)
        tCanvas.update()
        w *= 0.99
        Delay(0.001)
    win.mainloop()


效果图: (单步旋转角度为逆时针5度,例一边长逐渐变长;例二边长逐渐变短)

20210331072857276.gif


目录
相关文章
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
73 20
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
28天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
106 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
185 77
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
71 11
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
105 8
|
2月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
88 4
|
4月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
240 3
|
8月前
|
开发工具 git Python
安装和使用`libnum`是一个用于数字理论函数的Python库
【6月更文挑战第19天】`libnum`是Python的数字理论函数库。安装可通过`git clone`,进入目录后运行`python setup.py install`,也可用`pip install libnum`。示例:使用`int_to_hex`将十进制数42转换为十六进制字符串'2a'。注意,信息可能已过时,应查最新文档以确保准确性。如遇问题,参考GitHub仓库或寻求社区帮助。
148 1
|
7月前
|
Python
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:

热门文章

最新文章

推荐镜像

更多