东华理工大学 郭先春 《GIS程序设计基础》04文本与绘图.pptVIP

东华理工大学 郭先春 《GIS程序设计基础》04文本与绘图.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 绘图与文本输出 4.1 设备环境 4.1.1 设备环境的属性 设备环境其实是Windows的一个数据结构,它包含该区域(窗口)的信息,如当前背景色或区域图案、区域的无效部分等。设备环境的各个属性含义如表7-1所示。 4.1.2 获取设备环境 获取设备环境是应用程序输出图形的先决条件,常用的获取设备环境的方法是调用函数BeginPaint和GetDC。二者的差别如表4-2所示。 4.1.3 映像模式 1.窗口和视口 (1) 窗口:对应于逻辑坐标系上程序员设定的一个区域。 (2) 视口:对应于实际输出设备上程序员设定的一个区域。 2.坐标系 要为绘制和其他任务指定位置,需要坐标系统。Windows提供了若干种不同的坐标系,每种都有各自的用途。它们大致可分为两大类:设备坐标系和逻辑坐标系。除以下三种设备坐标系之外,其他都为逻辑坐标系。 三种设备坐标系: (1) 屏幕坐标系:使用整个屏幕作为坐标区域。 (2) 窗口坐标系:使用包括边界在内的整个应用程序窗口作为坐标区域。 (3) 用户区坐标系:只使用窗口中的用户区作为坐标区域,不包括边界及菜单栏和滚动条等。 3.映像模式 映像模式定义逻辑坐标系的单位与设备坐标系的度量单位之间的转换关系以及设备坐标系的X方向和Y方向。其优点是,程序员可不必考虑输出设备的具体坐标系,而在一个统一的逻辑坐标系中进行图形的绘制与操作,常用的映像模式如表4-3所示。 4.映像模式的使用 常用的映像模式操作函数: 1) 获取当前设备环境的映像模式 GetMapMode ( HDC hdc //当前设备环境句柄 ); 2) 设置当前设备环境的映像模式 SetMapMode ( HDC hdc, //当前设备环境句柄 int nMapMode //所选择的映像模式,如表4-3所示 ); 3) 设置窗口区域 BOOL SetWindowExtEx ( HDC hdc, int nHeight, //以逻辑单位表示的新窗口区域的高度 int nWidth, //以逻辑单位表示的新窗口区域的宽度 LPSIZE lpSize //保存旧窗口区域尺寸的SIZE结构地址 ); 4) 设置视口区域 BOOL SetViewportExtEx ( HDC hdc, int nHeight, //以物理设备单位表示的新视口区域的高度 int nWidth, //以物理设备单位表示的新视口区域的宽度 LPSIZE lpSize //保存旧视口区域尺寸的SIZE结构地址 ); 4.2 绘图 4.2.1 图形刷新 1.刷新请求 若Windows系统通过发送WM_PAINT消息将刷新请求传递给应用程序,则通常有如下两种情况: (1) 当程序第一次显示窗口时,需要第一次绘制窗口的内部或用户区,这时在显示窗口函数ShowWindow后,需调用UpdateWindow函数更新并绘制用户区,并发出WM_PAINT消息。 (2) 当用户区的内容需要刷新时,系统在应用程序的消息队列中加入WM_PAINT消息,以通知消息处理函数执行刷新操作。 2.系统对刷新请求的响应 1) 窗口移动后刷新 窗口移动后的刷新包括: (1) 用户区移动或显示。 (2) 用户窗口大小改变。 (3) 程序通过滚动条滚动窗口。 2) 被覆盖区域的刷新 被覆盖区域的刷新包括: (1) 下拉式菜单关闭,并需要恢复被覆盖的部分。 (2) ?Windows清除对话框或消息框等对象,并需要恢复被覆盖的部分。 3) 对象穿越后的刷新 对象穿越后的刷新包括: (1) 光标穿越用户区。 (2) 图标拖过用户区。 3.刷新方法 (1) 在内存中保持一个显示输出的副本,当需要重绘窗口时,将副本拷贝到相应的窗口中。该方法适用于刷新位图等复杂图形。 (2) 记录曾经发生的事件,在窗口需要刷新时,重新调用执行该事件。 (3) 重新绘制图形。在应用程序中,将图形绘制处理程序代码放在消息WM_PAINT响应模块中,一旦程序接到刷新请求即可重绘图形。该方法适用于简单图形的重新绘制。 4.2.2 绘图工具的应用 1.画笔的应用 1) 画笔的创建 (1) 直接从设备环境中获取画笔: HPEN hP; hP=GetStockObject(BLACK_PEN); Windows系统定义的常用画笔为: l?? BLACK_PEN:黑色画笔; l???

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档