Leon1图形的 保存和重绘 主讲人:孙鑫 http://www.sunxin.org
Lesson11 图形的 保存和重绘 主讲人:孙鑫 http://www.sunxin.org
在 OnlButtonUp数中 ① PtrArray m_ ptrArray; ② CGraph graph() ③ m_ ptrArray Add(& graph) 0088:4400 0088:4400 CGraphl的对 象瘼栈朸的内 啊存被回收 http://www.sunxin.org
在OnLButtonUp函数中 0088:4400 ②CGraph graph(…); CGraph的对 象在栈中的内 存 0088:4400 ①CPtrArray m_ptrArray; ③m_ptrArray.Add(&graph) http://www.sunxin.org CGraph的对 象发生析构, 内存被回收
如何解决这个问题呢? http://www.sunxin.org
如何解决这个问题呢? http://www.sunxin.org
在 OnlButtonUp数中 ① CPtrArray m_ ptrArray; 1244:EE00 ④ m_ptrArray Add( oGraph);② Graph' gRaph, ③ gRaph= new GRaph 0088:4660 1244:EE00 124^.00 H的肉释 GRaph的对象 被回收 在堆中的内存 仍然能索引到 GRaph的对象 http://www.sunxin.org
在OnLButtonUp函数中 1244:EE00 CGraph的对象 在堆中的内存 ①CPtrArray m_ptrArray; ②CGraph *pGraph; 0088:4660 1244:EE00 1244:EE00 pGraph的内存 ④m_ptrArray.Add(pGraph); ③pGraph=new CGraph(…); http://www.sunxin.org 仍然能索引到CGraph的对象 pGraph的内存 被回收
坐标空间 Microsoft Windows下的程序运用坐标空间和转换来对图形 输出进行缩放、旋转、平移、斜切和反射 个人 间是一个平面的空间,通过使用两个相互垂直 并直长度相等的轴来定位二维对象。 Xmin (、0) Ymin http://www.sunxin.org
坐标空间 ◼ Microsoft Windows下的程序运用坐标空间和转换来对图形 输出进行缩放、旋转、平移、斜切和反射。 ◼ 一个坐标空间是一个平面的空间,通过使用两个相互垂直 并且长度相等的轴来定位二维对象。 Xmin (0,0) Xmax Ymax Ymin http://www.sunxin.org
坐标空间 Win32应用程序设计接口(AP使用四种坐标空间: 世界坐标系空间、页面空间、设备空间、和物理 设备空间。应用程序运用世界坐标系空间对图形 输出进行旋转、斜切或者反射 win32API把世界坐标系空间和页面空间称为逻辑 空间;最后一种坐标空间(即物理设备空间)通常指 应用程序窗口的客户区;但是它也包括整个桌面 完整的窗口(包括框架、标题栏和菜单栏)或打印机 的一页或绘图仪的一页纸。物理设备的尺寸随显 示器、打印机或绘图仪所设置的尺寸而变化 http://www.sunxin.org
坐标空间 ◼ Win32应用程序设计接口(API)使用四种坐标空间: 世界坐标系空间、页面空间、设备空间、和物理 设备空间。应用程序运用世界坐标系空间对图形 输出进行旋转、斜切或者反射。 ◼ Win32 API把世界坐标系空间和页面空间称为逻辑 空间;最后一种坐标空间(即物理设备空间)通常指 应用程序窗口的客户区;但是它也包括整个桌面、 完整的窗口(包括框架、标题栏和菜单栏)或打印机 的一页或绘图仪的一页纸。物理设备的尺寸随显 示器、打印机或绘图仪所设置的尺寸而变化。 , http://www.sunxin.org
■如要在物理设备上绘制输出, Windows把一个矩形区域从 个坐标空间拷贝到(或映射到)另一个坐标空间,直至最 终完整的输出呈现在物理设备上(通常是屏幕或打印机) 如果该应用程序调用了 Set WorldTrans form函数,那么映射 就从应用程序的世界坐标系空间开始;否则,映射在页面 空间中进行。在 Windows把矩形区域的每一点从一个空间 拷贝到另一个空间时,它采用了一种被称作转换的算法, 转换是把对象从一个坐标空间拷贝到另一个坐标空间时改 变(或转变)这一对象的大小、方位、和形态,尽管转换把 对象看成一个整体,但它也作用于对象中的每一点或每条 http://www.sunxin.org
转换 ◼ 如要在物理设备上绘制输出,Windows把一个矩形区域从 一个坐标空间拷贝到(或映射到)另一个坐标空间,直至最 终完整的输出呈现在物理设备上(通常是屏幕或打印机) 。 ◼ 如果该应用程序调用了SetWorldTransform函数,那么映射 就从应用程序的世界坐标系空间开始;否则,映射在页面 空间中进行。在Windows把矩形区域的每一点从一个空间 拷贝到另一个空间时,它采用了一种被称作转换的算法, 转换是把对象从一个坐标空间拷贝到另一个坐标空间时改 变(或转变)这一对象的大小、方位、和形态,尽管转换把 对象看成一个整体,但它也作用于对象中的每一点或每条 线。 http://www.sunxin.org
下图是运用 SetWorldTransforn函数而进 行的一个典型转换。 Ymax Ymin Ymin Ymax 世界坐标系空间 页面空间 设备空间 物理设备 http://www.sunxin.org
转换 Ymax Ymin 世界坐标系空间 下图是运用SetWorldTransform函数而进 行的一个典型转换。 Ymax Ymin 页面空间 Ymin Ymax 设备空间 物理设备 http://www.sunxin.org
页面空间到设备空间的转换 页面空间到设备空间的转换是原 Windows接 口的一部分。这种转换确定与一特定设备 描述表相关的所有图形输出的映射方式 ■所谓映射方式是指确定用于绘图操作的单 位大小的一种量度转换。映射方式是一种 影响几乎任何客户区绘图的设备环境属性。 另外还有四种设备环境属性:窗口原点 视口原点、窗口范围和视口范围,这四种 属性与映射方式密切相关 http://www.sunxin.org
页面空间到设备空间的转换 ◼ 页面空间到设备空间的转换是原Windows接 口的一部分。这种转换确定与一特定设备 描述表相关的所有图形输出的映射方式。 ◼ 所谓映射方式是指确定用于绘图操作的单 位大小的一种量度转换。映射方式是一种 影响几乎任何客户区绘图的设备环境属性。 另外还有四种设备环境属性:窗口原点、 视口原点、窗口范围和视口范围,这四种 属性与映射方式密切相关。 http://www.sunxin.org
页面空间到设备空间的转换 页面空间到设备空间的转换所用的是两个矩形的宽与高的比率,其中页面空 间中的矩形被称为窗口,设备空间中的矩形被称为视口, Windows把窗口原点 映射到视口原点,把窗口范围映射到视口范围,就完成了这种转换,如下图 所 页面空间 窗口原点 窗口 设备空间 视口原点 视口 http://www.sunxin.org
页面空间到设备空间的转换 ◼ 页面空间到设备空间的转换所用的是两个矩形的宽与高的比率,其中页面空 间中的矩形被称为窗口,设备空间中的矩形被称为视口,Windows把窗口原点 映射到视口原点,把窗口范围映射到视口范围,就完成了这种转换,如下图 所示: 窗口原点 视口原点 窗口 视口 页面空间 设备空间 http://www.sunxin.org