- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[管理学]面向对象与图形编程
画圆 OO编程的能力所在 编程者 创建对象 调用合适的方法 让它们为你工作起来 仅此而已 对象与其实例变量—引用 VPython 自学 VPython (3D) / from visual import * 说明 扩展名.pyw 以适合windows的方式存储, 可执行多次 执行时不显示Python shell窗口 作业 EX 5.8 9, 14 上次作业总结: 少数同学的程序不能正常运行,如有语法错,对齐不一致等。请同学们在提交之前一定要自己先运行一下,确保是可以正常运行的。 强调:作业的命名格式:学号+姓名+题号.py 不按照要求的,下次酌情去分 按时交作业(平时成绩50%) 编程实例:投资收益图形版(续)接下来的1到10年 其他柱子的位置和高度 位置: 左下角为(year*25+40, 230). 高度: principal*(200/10000),则右上角y坐标为230 ? principal*(200/10000). 宽度: 25,故右上角x坐标为(左下角x坐标+25) 算法精化 for year 从1到10: principal = principal * (1 + apr) xll = 25 * year + 40 height = principal * 0.02 从(xll,230)到(xll+25,230-height)画矩形 * 自定义坐标系 默认坐标系以像素为单位 编程很麻烦 依赖于窗口像素尺寸 坐标变换:实际数据需映射成窗口像素位置 Graphics模块提供自定义坐标系的功能, 使坐标变换自动完成 * 自定义坐标系 好处 编程简单直观 改变窗口像素尺寸对程序几乎没影响 * 例子: 坐标系变换 例如 win = GraphWin(“Tic-Tac-Toe”) win.setCoords(0.0, 0.0, 3.0, 3.0) Line(Point(1,0), Point(1,3)).draw(win) Line(Point(2,0), Point(2,3)).draw(win) Line(Point(0,1), Point(3,1)).draw(win) Line(Point(0,2), Point(3,2)).draw(win) 新坐标系为: 左下角(0,0),右上角(3,3) 系统自动把新坐标变换成200*200像素坐标 适用于窗口大小改变 编程实例: futval2.py * 图形交互界面 GUI 图形元素用于输入输出 事件驱动的编程 系统初始化后等待用户指令或者等待事件的发生 事件: 移动鼠标, 点击按钮, 选菜单等 也是对象, 包含数据 事件发生后, 有相应事件处理程序来处理 * 捕获鼠标点击 GraphWin类有一个方法getMouse(): 调用时等待用户点击,并返回点击位置(是个Point对象). 例如: win = GraphWin(Click Me!) for i in range(10): p = win.getMouse() print You clicked (%d, %d) % (p.getX(), p.getY()) * 编程实例: triangle.pyw # Program: triangle.pyw from graphics import * def main(): win = GraphWin(Draw a Triangle) win.setCoords(0.0, 0.0, 10.0, 10.0) message = Text(Point(5, 0.5), Click on three points) message.draw(win) p1 = win.getMouse() p1.draw(win) p2 = win.getMouse() p2.draw(win) p3 = win.getMouse() p3.draw(win) triangle = Polygon(p1,p2,p3) triangle.draw(win) message.setText(Click anywhere to quit.) win.getMouse() win.close() main() * 图形窗口中的文本输入 Entry对象:提供一个可编辑文本的框 Entry(中心点, 宽度) 方法 setText(字符串) getText() * 图形窗口中的文本输入 实例:温度转换GUI版 关键语句 input = Entry(Point(2,3), 5) input.setText(“0.0”) input.draw(win) celsius = eval(input.getText()) 说明:一个对象如果只使用一次,则无
文档评论(0)