大家好,我是白菜胡萝丸子
人生苦短,Python当歌
项目导入
版本7.0:使用tkinter库的canvas控件绘制五角星
项目分析—理清思路
- 分析问题:分析问题的计算部分
- 明确问题:划分问题的输入、处理和输出部分(IPO)
- 设计算法:计算部分的核心
引入tkinter
按照绘图步骤进行图形绘制
使用tkinter库中的Canvas控件进行绘图
注:Python提供了多个图形界面开发的库,tkinter是其中的一个,引入tkinter库以后可以快速的创建GUI ( Graphic User Interface)应用程序。
知识点学习–万丈高楼平地起
使用tkinter中的Canvas控件绘图步骤
1.引入tkinter G正在识别 import tkinter
2.建立主窗口,设置画布大小 top/root/windows = tkinter.tk() C = tkinter.Canvas(top/root/windows, bg=" blue" , height=“300" ,
width=“300" )
3.绘制各种图形,如线条、多边形、弧形、圆形等
4.消息主循环(root到pack相当于尺寸,样式,位置,然后绑定一个事件, mainloop相当于刷新或者启动这个事件) c.pack() top/root.mainloop()
Canvas语法格式w = canvas ( master , option=value,… )
绘图关键步骤解析
2.设置主窗口、画布大小背景色等属性
top = tkinter.tk()
top.title(“绘制五角星”) #设置窗口的title值
C = tkinter.Canvas(top, bg=" blue" , height= “300” , width = “300” )
绘图关键步骤解析
3.绘制各种图形,如线条、多边形、弧形、圆形等
create_ ,arc :绘制弧。
create_ rectangle0 :绘制矩形。
create. image :绘制图片。
create_ line() :绘制直线。
create_ polygon :绘制多边形。
create_ text :绘制文字。
create_ window :绘制组件。
canvas.creat_polygon(x0,yo,1,/…xn,yn,fill='color")
#左上点 center. x-(rmath.sin(2math.pi/5)), center. y-(rmath.cos(2math.pi/5)),
#右上点 center. x+ (rmath.sin(2math.pi/5)), center y-(rmath.cos<(2math.pi/5)),
#左下点 center. x-(rmath.sin(math.pi/5)), center_ y+(rmath.cos(math.pi/5)),
#顶点 center. _X, center. _y-r,
#右下点 center. x+ (rmath.sin(math.pi/5)), center. y+(rmath.cos(math.pi/5)), .
上机编程–动动手,让程序运行起来
参照代码
""""
作者:白菜胡萝丸子
版本7.0:使用tkinter库的canvas控件绘制五角星
"""
import tkinter
import math
top = tkinter.Tk()
top.title("绘制五角星")
c = tkinter.Canvas(top, bg="pink", height="300", width="300")
# 使用canvas控件绘制五角星
r = 150
center_x = 150
center_y = 150
polygon = c.create_polygon(
# 左上点
center_x - (r*math.sin(2 * math.pi / 5)),
center_y - (r*math.cos(2 * math.pi / 5)),
# 右上点
center_x + (r*math.sin(2 * math.pi / 5)),
center_y - (r*math.cos(2 * math.pi / 5)),
# 左下点
center_x - (r*math.sin(math.pi / 5)),
center_y + (r*math.cos(math.pi / 5)),
# 顶点
center_x,
center_y - r,
# 右下点
center_x + (r*math.sin(math.pi / 5)),
center_y + (r*math.cos(math.pi / 5)),
fill="red"
)
# 消息主循环
c.pack()
top.mainloop()
执行结果
更上一层楼–让程序进化一点点
目前已经掌握了使用turtle库和Canvas控件绘制五角星的方法,如果我们想绘制一面标准的五星红旗,该如何实现呢?
请见下一篇文章