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)
以上代码绘制了一个矩形与扇形进行对照,结果如下:
以上结果得到了一个扇形,该扇形与矩形进行对比,得出扇形所在的区域为矩形的右上部分,扇形所在的区域为矩形的右上角区域,想要扇形绘制出一个半圆,占整个矩形的上半部分所需要另外两个参数:extent 与 start(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 参数设置值有 ARC、CHORD 以及 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
- .Net中DES加密的细节问题
- 分布式监控系统Zabbix--完整安装记录 -添加web页面监控
- .Net中使用带UI的OCX的方法
- 2017数据科学领域15大热门GitHub项目
- 简单分页的性能优化
- Flash/Flex学习笔记(42):坐标旋转
- 分布式监控系统Zabbix-完整安装记录 -添加端口监控
- Flash/Flex学习笔记(40):弹性运动续--弹簧
- 表格样式—粗边框细表格线
- 分布式监控系统Zabbix--完整安装记录 -添加apache监控
- Flash/Flex学习笔记(38):缓动动画
- 把EmEditor改造成简单的Word
- centos7下FFmpeg环境部署记录
- Mac下使用rz、sz远程上传下载文件的配置记录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 重学巩固你的Vuejs知识(上)
- js原生模态登录框
- 客户决策 | 我的代码没有else
- LeetCode 1595 Minimum Cost to Connect Two Groups of Points (动态规划)
- js DOM系统
- css的radial-gradient大详解
- 你想知道的优惠券业务,SkrShop告诉你
- js汇率计算器系统
- 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
- JS逐步教你做(自己版本)的视频播放器(我先声明,step我不懂是什么意思,所以没用)
- 【mysql系列】细谈“explain”之理论Part
- 如果用java swing编写一个五子棋(人人对战)
- 【mysql系列】细谈explain执行计划之“谜”
- 洛谷 P1352 没有上司的舞会(树形 DP)
- CF思维联系– CodeForces - 991C Candies(二分)