当前课程知识点:Python 交互式程序设计导论 > 第3周 > A 课程视频(画布绘图) > 画布和图形绘制
返回《Python 交互式程序设计导论》慕课在线视频课程列表
Hi, 大家好!
欢迎大家回到Python课程
今天我将教会大家如何使用simpleguitk
在画布中绘制文本、图形等。
会给大家讲解一些坐标的概念。
最后,我将会和大家创建我们第一绘图业务程序。
好,下面开始我们今天的课程。
通过SimpleGUITK,我们创建的窗口分为左右两部分。
左侧称为控制区,右侧称为画布。
画布的水平方向,我们称之为画布的宽,
它的单位用像素去表示,
画布的垂直方向或着竖直方向,我们表示为画布的高,它的单位也是像素。
画布与我们所使用的计算机显示器所使用的坐标相同,
都是以左上角为坐标原点。
这个规定主要来源与我们的生活。
在早期,我们的电视使用的坐标原点就是左上角。
所以现在的计算机显示器和我们的应用程序画布的表示都采用了这种传统的设置。
这和我们中学的数学坐标
是有所区别的。
在画布中,我们的一对坐标
用[x,y]去表示
x表示它的水平位移,y表示它的垂直位移。
Python中给了17种常用的颜色。
那么这12种颜色呢,我们用英文单词可以直接去表示
我们已经给出了一个绘图模板
我们来看一下,如果要完成绘图程序,我们要完成哪几项工作。
第一步,我们首先要导入图形函数库
也就是我们的simpleguitk
第二步,我们要定义绘图函数。
第三步,创建框架。
恩,创建框架。
第四步,在框架上注册事件。
第五部启动框架。
好,那我们一项一项来完成。
首先,第一步,导入图像库函数。
也就是simpleguitk,那么这里呢和我们之前稍微有所不同,
也就是我们的simpleguitk写起来比较长,
我们为了简单我们用一个 “as gui” 去表示。
也就是在后面我们看到simpleguitk的地方,我们都可以用gui去替换。
导入图像库以后,我们就可以去创建框架。
敲击键盘...
我们这里已经给出了一个语法模板,我们直接写就行了。
按照它去写。
框架的名称 “第一个绘图程序”。
框架的宽度,我给个300;
框架的高度,我给个200。
好,我们要启动框架。
这样做的好处是什么呢?我们用最少的代码去执行。
这样的话,检查错误时非常方便的。
如果我们保证现有的代码时正确的,
我在往后编写的时候,我就知道,我距离上一个距离正确的代码非常接近
好,运行
那么这是我们最后的运行窗口
恩,画布的宽度300,画布的高度200。
没问题!
好,那么下面我们要定义绘图函数。
那么我们要想一想,定义绘图函数,我们是要在哪里进行绘图。
我们是在画布上进行绘图。
所以,首先我们要操作的对象时画布。
好!
也就是我们要操作的对象时画布那就是说这里面必须要带一个参数,我们把他叫做是canvas,
呐,canvas
那么我们起的这个画布的名称
就叫,这个参数就叫canvas,那么它的语法,
我上面已经显示了,
我们按照上面的语法去写。
我们要在画布上显示一个文本信息,
好,我们去,照着上面去写就行了
draw text
第一个参数我们显示为本的信息内容
好,我们叫 Python
第二个,显示文本的坐标
也就是说从哪里开始显示
我们给一个[100,100]
第三个文本的字体大小
我们给一个30
第四个字体的颜色
因为我们的画布默认是黑色的,好,我们给一个白色
白色的英文单词
好啦,定义完这个绘图函数以后,
下面紧接着要做的非常非常重要的事情是注册
这个事件
这里已经给了我们注册的语法,我们直接抄。
抄写一遍就行了
好,后面跟的这个参数,也就是我们绘图函数名
我们把函数名写进去
好,我们运行一下
也就说我们只增加了两段代码
那么距离我们上一个正确代码很近
好,我们已经输出了Python
我们已经输出了是Python
没有问题
好,那么我想要问的是
这个100和100
对于文本的输出也是按照这个
画图,它是从左上角进行计算的吗?
也就是我们是从字幕P的
左上角开始往右下角去输出的吗?
哦,我们这里呢可以进行一个测试。
也就是我们假设我们输出文本的这个
位置再画一个小点
好什么意思呢,就是我们在我们原有的输出位置
画一个小圆
园的半径我们给个足够小,比如说 2
画圆的线的这个宽度,
我们也给为2
线的颜色为了与白色区别,我们给为红色。
Red
好,这时我们在点击运行。
恩,我们可以看到,对于文本的输出它的坐标和画布的坐标是有所区别的。
文本的输出,
它的坐标原点是从左下角,
Python的第一个字母P的左下角开始输出。
而我们的画布,
它的原点是从左上角开始。
这也就是我们以后再画布中显示文本的时候,
我们要格式输出的时候,
大家要注意这一点!
好,今天的内容就到这,
我们下次课再见。
-课程简介
--课程简介
-A 课程视频(算数操作符及表达式)
--绪论
-B 课程视频(变量及赋值)
--变量
--项目提交
-C 辅助视频(计算机结构、Python开发环境安装)
-D 辅助视频(如何提交项目)
--项目提交
-第0周--小测验
-本周项目:"我喜欢Python"
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
--项目提交
-A 课程视频(函数)
--函数
--其它操作符
--随机函数
-B 课程视频(逻辑及表达式)
--逻辑值和比较
--条件
--编程技巧
-第1周--小测验
-本周项目:“老虎杠子鸡虫”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(Python交互式应用)
--事件驱动编程
--按钮
-B 课程视频(输入框、全局变量)
--输入框
--编程技巧
-第2周--小测验A
-第2周--小测验B
-本周项目:猫咪藏在哪个房间
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(画布绘图)
--画布和图形绘制
--字符串处理
--图片和音效
-B 课程视频(计时器)
--计时器
--交互式绘图
--“神奇时钟”游戏
--编程技巧
-第3周--小测验A
-第3周--小测验B
-本周项目:“神奇时钟”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(列表)
--列表
--键盘输入
--碰撞和反射
-B 课程视频(键盘控制)
--速度控制
--运动
--编程技巧
--“桌上冰球”游戏
-第4周--小测验A
-第4周--小测验B
-本周项目:“桌上冰球”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(鼠标输入、列表进阶)
--鼠标输入
--Video
--Video
--Video
-B 课程视频(字典和图片)
--Video
--Video
--Video
--Video
-第5周--小测验A
-第5周--小测验B
-本周项目:“世界杯八强连连看”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类)
--华容道中的类
-B 课程视频(平铺图片)
--平铺图片
--理解对象
--编程技巧
--“华容道”游戏
-第6周--小测验A
-第6周--小测验B
-本周项目:“华容道”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类进阶及文件操作)
--集合
--文件操作
--文字块类
--处理停止的文字块
-B 课程视频(游戏状态控制)
--游戏记分规则
--编程技巧
-第7周--小测验A
-第7周--小测验B
-本周项目:决战三字经
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板
-A、课程视屏(精灵集合)
--Video
--精灵类
--战士类
--编程技巧
-B、课程视屏(动画)
--精灵碰撞
--精灵动画
--编程技巧
--保卫家园游戏
-第8周--小测验
-本周项目:守卫家园
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板