18.2.19 create_polygon(coords, **options)
 根据 coords 给定的坐标,在画布上绘制一个多边形。
 (1)coords:给定多边形的坐标
 (2)options:选项的具体含义:
| 选项 | 含义 | 
|---|---|
| activedash | 当鼠标经过多边形对象的时候,绘制虚线边框 | 
| activefill | 当鼠标经过多边形对象的时候,填充颜色 | 
| activeoutline | 当鼠标经过多边形对象的时候,绘制轮廓线 | 
| activeoutlinestipple | 当鼠标经过多边形对象的时候,指定填充轮廓的位图 | 
| activestipple | 当鼠标经过多边形对象的时候,指定填充的位图 | 
| activewidth | 当鼠标经过多边形对象的时候,指定边框的宽度 | 
| dash | 指定绘制虚线轮廓 | 
| dashoffset | 指定虚线轮廓开始的偏移位置,该参数无效 | 
| disableddash | 当多边形对象状态为 DISABLE 的时候,绘制虚线 | 
| disabledfill | 当多边形对象状态为 DISABLE 的时候,填充颜色 | 
| disabledoutline | 当多边形对象状态为 DISABLE 的时候,绘制轮廓线 | 
| disabledoutlinestipple | 当多边形对象状态为 DISABLE 的时候,指定填充轮廓的位图 | 
| disabledstipple | 当多边形对象状态为 DISABLE 的时候,指定填充的位图 | 
| disabledwidth | 当多边形对象状态为 DISABLE 的时候,指定边框的宽度 | 
| fill | 指定填充的颜色,空字符串表示透明 | 
| joinstyle | 指定当绘制两个相邻线段之间接口的样式,该选项的值可以是: ROUND(以连接点为圆心,1/2 width 选项设置的长度为半径绘制圆角) BEVEL(在连接点处对两线段的夹角平切) MITER(沿着两线段的夹角延伸至一个点) 默认值是 ROUND  | 
| offset | 指定填充位图的偏移,该选项的值可以是:“x,y”, “#x,y”, N, NE, E, SE, S, SW, W, NW, CENTER | 
| outline | 指定轮廓的颜色 | 
| outlineoffset | 指绘制填充轮廓位图的偏移,该选项的值可以是:“x,y”, “#x,y”, N, NE, E, SE, S, SW, W, NW, CENTER | 
| outlinestipple | 当 outline 选项被设置时,该选项用于指定一个位图来填充边框,默认值是空字符串,表示黑色 | 
| smooth | 该选项的值为 True 时,将绘制贝塞尔样条曲线代替线段。默认值为 False | 
| splinesteps | 当绘制贝塞尔样条曲线的时候,该选项指定由多少条折线来构成曲线,默认值是 12。只有当 smooth 选项为 True 时该选项才能生效 | 
| state | 指定该多边形对象的状态,可以是 NORMAL,DISABLED(不可用,不响应事件)和 HIDDEN(隐藏)。默认值是 NORMAL | 
| tags | 为创建的多边形对象添加标签 | 
| width | 指定边框的宽度 | 
| 18.2.19.1 activedash | |
| 鼠标经过多边形的时候,边框显示为虚线。 | 
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activedash=True,
                       outline='blue')
b1.pack()
root.mainloop()
 
结果:
 
 说明:需要设置outline或者activeoutline,否则多边形默认是没有边框的。activedash就不会起作用了。
 18.2.19.2 activefill
 鼠标经过多边形的时候,多边形内部的颜色。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       activefill='red')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.3 activeoutline
 鼠标经过多边形的时候,多边形轮廓线的颜色。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activeoutline='red')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.4 activeoutlinestipple
 定义鼠标经过多边形的时候,填充多边形轮廓线的bitmap。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activeoutline='red',
                       activeoutlinestipple='error')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.5 activestipple
 定义鼠标经过多边形的时候,填充多边形的bitmap。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activeoutline='red',
                       activestipple='@x.xbm')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.6 activewidth
 定义鼠标经过多边形的时候,边框的宽度。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,activewidth=20,
                       activeoutline='red')
b1.pack()
root.mainloop()
 
结果:
 
 说明:如果activewidth的数值小于width的数值,则边框的宽度没有变化。
 18.2.19.7 dash
 绘制虚线边框。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=10,outline='blue',dash=True)
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.8 dashoffset
 此参数不起作用。
 18.2.19.9 disableddash
 当多边形的状态是tk.DISABLED的时候,显示虚线边框。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
def state():
    b1.itemconfigure(pol1,state=tk.DISABLED)
b2=tk.Button(root,text='Disabled',command=state)
b2.pack()
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=5,outline='blue',
                       disableddash=True)
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.10 disabledfill
 当多边形的状态是tk.DISABLED的时候,多边形的填充颜色。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
def state():
    b1.itemconfigure(pol1,state=tk.DISABLED)
b2=tk.Button(root,text='Disabled',command=state)
b2.pack()
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=5,outline='blue',
                       disabledfill='red')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.11 disabledoutline
 当多边形的状态是tk.DISABLED的时候,绘制轮廓线的颜色。用法参见18.2.19.3 activeoutline节。
 18.2.19.12 disabledoutlinestipple
 当多边形的状态是tk.DISABLED的时候,轮廓线的填充bitmap。用法参见18.2.19.4 activeoutlinestipple节。
 18.2.19.13 disabledstipple
 当多边形的状态是tk.DISABLED的时候,填充多边形的bitmap。用法参见18.2.19.5 activestipple节。
 18.2.19.14 disabledwidth
 当多边形的状态是tk.DISABLED的时候,多边形边框的宽度。用法参见18.2.19.6 activewidth节。
 18.2.19.15 fill
 多边形内部的填充颜色。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,150,100,140,160,30,120,
                       width=5,outline='blue',fill='red')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.16 joinstyle
 定义多边形线段交汇的模式,有三种ROUND、BEVEL和MITER。详细的说明见18.2.17.15。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,250,100,140,160,30,120,
                       width=25,outline='blue',
                       joinstyle='round')
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.17 offset
 使用bitmap作为底纹填充时候的如何放置bitmap。参见18.2.17.16 的说明。
 18.2.19.18 outline
 指定轮廓线的颜色。如果没有指定轮廓线的颜色,会使用内部填充的颜色。默认值是黑色的。
 18.2.19.19 outlineoffset
 使用bitmap作为底纹填充轮廓线时候的如何放置bitmap。见18.2.17.16的说明。
18.2.19.20 outlinestipple
 指定填充轮廓线的bitmap。用法参见18.2.19.4 activeoutlinestipple节。
 18.2.19.21 smooth
 是否让多边形的边框光滑处理。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,250,100,140,160,30,120,
                       width=15,outline='blue',
                       smooth=True)
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.22 splinesteps
 当smooth=True时,如何光滑曲线?可以靠splinesteps。此参数定义线段2个点之间的光滑曲线的步长,点数越多,曲线越光滑。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
pol1=b1.create_polygon(20,40,250,100,140,160,30,120,
                       width=15,outline='blue',
                       smooth=True,splinesteps=3)
b1.pack()
root.mainloop()
 
结果:
 
 18.2.19.23 state
 定义多边形的状态。有三种:NORMAL、DISABLED和HIDDEN
 18.2.19.24 stipple
 指定填充多边形的bitmap。用法参见18.2.19.5 activestipple。
 18.2.19.25 tags
 给多边形指定标签。也可以通过其他方法指定。
18.2.19.26 width
 定义多边形轮廓线的宽度。














![[ 常用工具篇 ] 使用 kali 实现网络钓鱼 -- setoolkit 详解实战(一)](https://img-blog.csdnimg.cn/cbae5ca4b6d345f1af7d2644aeccec25.png)




