python thinker canvas create_arc 使用详解

版权声明:本文为博主原创文章,遵循 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://www.mzph.cn/news/288090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指offer之二叉搜索树和双向链表

1 问题 比如我们搜索二叉树如下,我们需要变成双向链表 2 分析 我们知道这个变成双向链接的时候是按照树的中序遍历打印的,我们只需要在中序遍历打印的时候操作该节点,我们可以用临时变量保存这个节点,同时我们也需要单独增加一…

text 热敏打印机_只要有想象力,打印机都能做游戏

不知道为什么,文本冒险游戏最近频频被人提及。这不,现在又出来一个基于实时打印的文本冒险游戏 —— Quest Smith。这位脑洞较大的创客名叫 Bekir Dağ ,他用微型打印机和树莓派做出了这个手持游戏设备。关于文本冒险游戏的背景知识&#xff…

C#内建接口:IConvertible

这节来讲一个比较有意思的接口:IConvertible。IConvertible接口处于System.Runtime命名空间下,这个接口规定了一批ToXxx()方法,凡是实现了这个接口的方法,我们都可以尝试将其转换为自己想要的类型。IConvertible中有什么&#xff…

ArcGIS升级地理数据库

本博文教大家如何快速地将低版本地理数据库升级为高版本地理数据库。 方法一:使用“升级地理数据库”工具箱二、使用ArcCatalog地理数据库→右键→属性。三、创建不同版本的地理数据库

Android官方命令深入分析之Hierarchy Viewer

Hierarchy Viewer允许你调试和优化用户界面。它提供了一个层可视的方式来显示。 启动Hierarchy Viewer,如下: 在Android Studio中,选择Tools > Android Device Monitor。进入SDK tools文件夹,在命令行输入monitor转载于:https:…

汉高软件服务器安装系统,如何安装了如指掌眼镜管理系统的服务器和客户端,还需要安装什么软件的?...

满意答案ven85202014.05.09采纳率:53% 等级:7已帮助:356人易软眼镜店管理系统它整合了整个眼镜店的收费、客户登记、验光单管理、配镜管理、财务管理和查旬报表以及库存管理一体化的管理系统。随时可以查看客户的验光单、对比,…

Python3 实现单例设计模式

单例模式的一般实现 饿汉式 懒汉式就是通过一个方法才能实现单例,我不是很常用,所以在此就写个饿汉式。以后再补懒汉式。 单例模式的核心作用是保证一个类只有一个该类型的对象。在一个对象被过多调用时避免过多的消耗内存,即可使用单例模式…

js最全的十种跨域解决方案

在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同 源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那…

剑指offer之二叉树的下一个结点

1 问题 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针 2 分析 比如我现在的二叉树如下 42 61 3 5 7 这里分3种情况 1) 如果…

查看和修改系统时间

Echo -n 不换行显示 echo -e不转义Date ‘%Y-%m-%d 查看当前时间 date-s ‘2017/09/04’表示修改时间 %w表示周 %H:%M:%S时分秒 %F%Y-%m-%d %T%H:%M:%S$()反引号 hwclock将修改后的系统时间写到bios里Date %F -d ‘-3 day’三天前 -一定要Date %F -d ‘3 day’三天以后 …

fanuc机器人码垛编程实例_FANUC 机器人码垛编程详细讲解 记得收藏!

原标题:FANUC 机器人码垛编程详细讲解 记得收藏!1. 码垛功能的定义对几个具有代表性的点进行示教,即可以从下层到上层按照顺序堆叠工件。2. 码垛的种类码垛 B:包括码垛B(单路径模式)和码垛BX(多路径模式) 适用于工件姿势恒定,堆叠…

基于casbin的ABAC/RBAC权限实践

五一假期疫情封在家也没事做,就想来优化一下一个前端容器小项目之前的TODOlist里面有一项是权限这块时隔2年了还一直没有动手迟迟没搞主要还是我太懒了,哈哈 其实我一直想要找一个轻量级的权限通用方案权限的数据源可以切换,但是逻辑基本不用…

Python3 实现建造者模式

建造者模式 建造者模式用于创建复杂的对象。使用建造者模式可以使复杂的过程层次明了、清晰,把对象的创建以及使用进行了解耦。实际上从代码的角度上看,是进行了多次封装,使代码结构更为规范合理,层次结构更加鲜明。 在一个复杂…

系列网络服务器机柜,什么是网络机柜 网络机柜和服务器机柜有哪些区别【详解】...

【网络机柜】什么是网络机柜 网络机柜和服务器机柜区别服务器机柜和网络机柜的区别服务器机柜 :用来组合安装面板、插件、插箱、电子元件、器件和机械零件与部件,使其构成一个整体的安装箱。可以配置:专用固定托盘、专用滑动托盘、电源插排、…

JS解析url

使用js解析url ,返回一个对象&#xff0c;使用函数&#xff1a; <script type"text/javascript"> var url"www.taobao.com?key0a&key1b&key2c"; function parseQueryString(url){var strurl.split("?")[1],itemsstr.split("…

Android SDK 目录说明

Android SDK目录说明: AVD Manager.exe&#xff1a;虚拟机管理工具 SDK Manager.exe&#xff1a;sdk管理工具 tools目录&#xff1a;包括测试、调试、第三方工具。模拟器、数据管理工具等。 build-tools目录&#xff1a;编译工具目录&#xff0c;包含了转化为davlik虚拟机的编译…

【3D Max】3D max如何删除环境贴图

问题描述&#xff1a;在用3dm max贴图的时候&#xff0c;如果不选中对象&#xff0c;很容易将图贴到背景环境中去&#xff0c;情况如下所示&#xff1a; 解决办法有二&#xff1a; 一、不参与渲染 快捷键8&#xff0c;在“环境和效果”窗口中去掉“使用贴图”前面的√。 二、…

剑指offer之求二叉树中两个节点的最低共同父节点

1 问题 求二叉树中俩个节点的最低共同父节点&#xff0c;比如二叉树如下 42 61 3 5 7 比如节点1和3两个节点的最低共同父节点是2&#xff0c;节点3和5两个节点的最低共同父节点是4,节点5和6两个节点的最低共同父节点是6, 也有可能其中1个节点或者2个节点不…

C#语法糖系列 —— 第四篇:聊聊 Span 的底层玩法

把 Span 归于语法糖&#xff0c;可能有些偏了&#xff0c;但偏了就偏了&#xff0c;哈哈&#xff0c;只要是分享就好&#xff0c;C# 发展至今&#xff0c;已经是一门非常重的语言了&#xff0c;所有想要的它都要&#xff0c;即可以&#xff1a;面向过程编程面向对象编程面向函数…

hdu 1556 Color the ball 线段树 区间更新

水一下 #include <bits/stdc.h> #define lson l, m, rt<<1 #define rson m1, r, rt<<1|1 using namespace std;const int MAXN 111111; int sum[MAXN<<2]; int n;void push_down(int rt, int len) {if(sum[rt] 0) return;sum[rt<<1] sum[rt];…