python thinker canvas create_arc 使用详解

article/2025/8/21 5:42:16

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/A757291228/article/details/106739556
———————————————— 版权声明:本文为CSDN博主「1_bit」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/A757291228/article/details/106739556

注:以下文章皆基于以下代码所创建的对tk对象进行编程
python 版本为3.x

from tkinter import *
root = Tk()
canvas = Canvas(root,background='#D4D4D4',width=1000,height=1000)#初始化 canvas
canvas.pack(fill=BOTH,expand=YES)

create_arc 的基本使用

Python Thinker canvas 使用 create_arc 创建一个扇形。
create_arc 的函数的一般使用方法如下:

canvas.create_arc(coord, start, extent, fill)

类型说明:

  • coord :元组 int
  • start :整形 int
  • extent:整形 int
  • fill :字符串 str

coord元组配置矩形所形成的椭圆的左上角坐标及右下角坐标:
coord=x1,y1,x2,y2
首先尝试 create_arc 的简单使用方法:

canvas.create_arc(coord)

完整代码如下:

from tkinter import *root = Tk()
root.title('作者CSDN :1bit 帐号:A757291228')canvas = Canvas(root,background='#D4D4D4',width=830,height=830)#初始化 canvas
canvas.pack(fill=BOTH,expand=YES)coord = 200, 200, 400, 400 #坐标起始点
canvas.create_rectangle(coord)#这一行只是为了方便查看该坐标绘制的矩形,进行对照,不必要了解
arc = canvas.create_arc(coord)

以上代码绘制了一个矩形与扇形进行对照,结果如下:
在这里插入图片描述
以上结果得到了一个扇形,该扇形与矩形进行对比,得出扇形所在的区域为矩形的右上部分,扇形所在的区域为矩形的右上角区域,想要扇形绘制出一个半圆,占整个矩形的上半部分所需要另外两个参数:extentstart(start并不是一定需要) 。

参数类型说明:

  • start:从x轴正方向(起始方向)开始,单位为度进行绘制,start为起始绘制角度的设置
  • extent:以start参数作为参考,以start参数给定的角度开始,逆时针延伸角度,这个角度为extent设置的值

尝试使用start参数:

from tkinter import *root = Tk()
root.title('作者CSDN :1bit 帐号:A757291228')canvas = Canvas(root,background='#D4D4D4',width=830,height=830)#初始化 canvas
canvas.pack(fill=BOTH,expand=YES)coord = 200, 200, 400, 400
canvas.create_rectangle(coord)
arc = canvas.create_arc(coord,start=10)

以上代码在 create_arc 添加了 start参数,设置start参数为10,绘制时,将以x正方向作为参照,形成的角度为10度作为起始绘制角度,所形成的扇形如下:
在这里插入图片描述
现在使用 extent 参数进行延伸绘制,并把 start 参数设置为 0:

from tkinter import *root = Tk()
root.title('作者CSDN :1bit 帐号:A757291228')canvas = Canvas(root,background='#D4D4D4',width=830,height=830)#初始化 canvas
canvas.pack(fill=BOTH,expand=YES)coord = 200, 200, 400, 400
canvas.create_rectangle(coord)
arc = canvas.create_arc(coord,start=0,extent=180)

结果如下,绘制成一个半圆扇形:
在这里插入图片描述
以上代码,start 参数省略也可以完成半圆绘制,start默认为0。使用start可更灵活的控制起始绘制角度。
使用fill 可以使绘制区域填充设置的颜色代码,代码如下:

arc = canvas.create_arc(coord,extent=180,fill="red")

结果如下:
在这里插入图片描述

create_arc 的扩展使用

create_arc 可以接收更多的参数进行扩展绘制,参数为 (并不是所有参数,之后有时间将陆续补上):style、dash、outline、width等。

style 参数

style 参数设置值有 ARCCHORD 以及 PIESLICE;默认情况下 style的值为 PIESLICE,以下设置 style 的值为 ARC 查看效果:

arc = canvas.create_arc(coord,extent=180,style=ARC)

结果如下:
在这里插入图片描述
CHORD

arc = canvas.create_arc(coord,extent=180,style=CHORD)

结果如下:
在这里插入图片描述
PIESLICE

arc = canvas.create_arc(coord,extent=180,style=PIESLICE)

结果如下:
在这里插入图片描述

dash 参数

dash 参数类型为元组,用于设定虚线线段。例如 dash=(3,4) 中,值3为指定绘制多少个像素的线段,值4为下一条线段绘制需要间隔多少个像素。
查看代码:

arc = canvas.create_arc(coord,dash=(10,2),style=PIESLICE)

以上代码绘制一个扇形,是虚线绘制,其中dash的值设置为10与2,其中10为设置每条线段长度为10,下次绘制间隔2个像素。结果如下:
在这里插入图片描述
dash设置的值并不只能设置两个,可以设置多个,例如:dash=(15,2,13,2,10,2,7,2);该代码为绘制15像素线段后间隔2像素再次绘制,下一次绘制13像素,再间隔2次以此类推。结果为:
在这里插入图片描述

outline 参数

outline 用于设置绘制的线段颜色,默认为黑色,参数类型为字符串,例如:outline='red',代码如下:

arc = canvas.create_arc(coord,outline='red',style=PIESLICE)

结果如下:
在这里插入图片描述

width 参数

设置绘制成的图形边框的粗细,默认单位为像素。
代码示例:

arc = canvas.create_arc(coord,width=10,style=PIESLICE)

设置边框粗细为10,结果如下:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/A757291228/article/details/106739556
———————————————— 版权声明:本文为CSDN博主「1_bit」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/A757291228/article/details/106739556


http://chatgpt.dhexx.cn/article/PIWU1BJJ.shtml

相关文章

二、让界面动起来,Python基于thinker实现的简单的俄罗斯方块小游戏

文章目录 界面动起来定时刷新页面移动俄罗斯方块 界面动起来 **功能:**如何让方块「动起来」? 分析过程: 要想让方块动起来,需要实现以下两点: 定时刷新页面移动页面内部的俄罗斯方块 定时刷新页面 实现定时刷新页面&#xff…

三、生成随机方块,Python基于thinker实现的简单的俄罗斯方块小游戏

文章目录 生成第一步:随机生成方块对象第二步:修改游戏运行方法 固定第一步:记录固定的方块第二步:修改check_move方法 左右移动第一步:左右移动方块第二步:绑定键盘 旋转第一步:添加旋转方法第…

【G-thinker】G-thinker部分源码解析

一、main 子图匹配程序run.cpp中主要使用到worker.h和comper.h分别对应线程和进程单位,接下来我们从main函数入手解析源码 从主函数可以看到,子图匹配程序中GMatchWorker继承了worker,主函数声明了workerparams并且传入了路径和线程参数&am…

python用thinker库制作一个进制转换器(可打包exe)

进制类型分为: 二进制 字母B表示 八进制 字母O表示 十进制 字母D表示 十六机制 字母H表示 进制转换之间很麻烦,还得计算,如果可以做一个进制转换器多nice,其实也不难,就利用一个tkinter库就能制作,废话不多…

Thinker Board 2开发板上使用奥比中光 astra 深度相机

Thinker Board 2 国产开发板 arm架构 上使用奥比中光 astra 深度相机 准备工作 1、下载astraSDK 选择linux_arm 下载 https://developer.orbbec.com.cn/download.html?id53 2、下载openNI https://dl.orbbec3d.com/dist/openni2/OpenNI_2.3.0.66.zip 开始安装 1、安装fre…

think

我167,97斤,胸d,腰很细,反手轻松摸肚脐那种,骨架小,总结就是身高刚好人瘦胸大屁股大腿细腰细肤白。走路腰杆能挺到天上,气质挺好。漂亮女生太多了,想取胜只能从气质下手了。脸呢&…

Python基于thinker实现的简单的俄罗斯方块小游戏源代码:一、搭建界面

文章目录 一、搭建界面搭建基础窗体第一步:创建画板大小第二步:在画板上作画 绘制俄罗斯方块第一步:绘制o形俄罗斯方块第二步:绘制其他形状方块 记录俄罗斯方块小游戏的游戏思路和过程 一、搭建界面 **目标:**搭建基础…

thinker board s debian系统安装配置

thinker board s debian系统安装配置 好多年前买了一块thinker board s,装安卓系统来用,结果经常性卡死不知道为啥,可能是供电问题,也可能是系统bug,之后就吃灰不怎么用了,最近想装一个计算服务器&#xff…

python利用thinker制作多页面切换的桌面应用实例教程

本篇文章主要讲解,python利用thinker制作多页面的桌面实例教程。可以在一个主界面中相互进行切换和设置相关的表单信息,布局等方法 代码片段的实际效果 视频演示: python使用thinker制作多窗口代码片段实例效果 gif动态图: 构建…

模型思维-THE MODEL THINKER

序言这本书是怎样写成的 Part1为什么需要模型思维 01做一个多模型思考者 使用模型来思考能够带给你的,远远不仅仅是工作绩效的提高。它还会使你成为一个更优秀的人,让你拥有更强的思考能力。你将更擅长评估层出不穷的经济事件和政治事件,更能…

展示一下用thinker做小软件的UI

有一个大坑给大家分享一下。ttk.Treeview可以改变列宽,却不能改变某一行的行高(可以改变整体的行高),其实就是Treeview没有自动换行功能,很痛苦,很折磨,......我一度放弃thinker,因为…

Python Thinker GUI的组件的简单总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Label二、Button三、Entry四、Text五、CheckButton六、RadioButton七、Menu八、Canvas九、Scale 前言 例如:随之前学过Java的基础,…

Thinker 使用详解

文章目录 Tinker基本介绍它主要包含以下几部分:为什么使用 Tinker Tinker 执行原理及流程简单的使用 Tinker1,在项目的gradle.properties 中添加2,在项目的 gradle中添加:3,在 app 中的 gradle 中添加:4,接着进行初始化,新建一个类…

python界面编程-thinker

一、介绍 thinker是python内置界面库不需要额外安装 二、控件使用 1、窗口 import tkintertop tkinter.Tk()#创建窗口 top.mainloop()#消息循环2、按钮 from tkinter import *def button_event():print("按钮按下\n")return#创建窗口 main_window Tk() #设置窗口…

python thinker(菜单,滚动条,回调函数,对话框)

菜单menu from tkinter import * root Tk() def lab():label0Label(root,text"hello world")label0.grid(column0) root.geometry("800x480")#窗口大小menu0Menu(root)#参数是父级控件 for x in [文件,编辑,视图]:menu0.add_command(labelx,commandlab)#…

永恒之蓝(勒索病毒)

1、要有一台靶机和一台攻击机,这里的攻击机为kali,靶机为Windows2008。 2、添加一个新的网卡,防止病毒传播到主机。 1、添加网卡: 注意:这里添加的子网ip不能和前面的重复。 3、给虚拟机设置网卡。 两台虚拟机要设置为…

老生常谈,永恒之蓝-winxp

老生常谈,永恒之蓝-winxp 环境说明: 攻击机:kali 靶机:windows xp sp2 靶机开放服务:无,IE浏览器版本 6.0 信息收集: 扫描当前网段存活主机,发现目标主机:IP&#xf…

msf渗透测试学习-与永恒之蓝漏洞案例

MSF是Metasploit Framework的缩写,是一款广泛使用的渗透测试工具,具有强大的攻击功能。它提供了一个模块化的平台,通过将各种攻击载荷、漏洞利用和辅助工具组装在一起,可用于模拟各种攻击,测试系统安全性,也…

永恒之蓝--Windows7

永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务…

win7永恒之蓝

一 使用msfconsole命令开启MSF,并使用search命令搜索永恒之蓝模块 search ms17-010 二 :使用搜索出来的第三个模块来进行探测目标是否存在永恒之蓝漏洞,并设置好以下参数进行扫描测试 >>>use auxiliary/scanner/smb/smb_ms17_010 …