对VC坐标系的初步理解(如有错误欢迎指出)
2007-01-21 15:06
363 查看
VC 的坐标系之所以分为逻辑坐标和设备坐标,个人认为是为了方便.因为我们不可能总是在象素为基本单位下画图,于是VC引进坐标映射模式.我们在逻辑坐标下画图,基本单位和我们设定的映射模式有关,比如毫米,英寸,然后通过转换为设备坐标在设备上显示出来.显示出来的肯定都是在设备坐标下.
设定映射模式后,可以用SetWindowOrg和SetViewportOrg来设定逻辑坐标的原点和设备坐标的原点然后在逻辑坐标下画图,逻辑坐标转换为设备坐标步骤(引用别人的):
(1)逻辑坐标值减去逻辑坐标原点(setWindowOrg中设置的值)(2)上面的结果乘以比例因子变为设备坐标值(3)上面结果加上设备坐标原点值(setViewportOrg中设置的值)然后在设备上显示
逻辑坐标和设备坐标的原点总是重合的,另外还有函数SetWindowExt和SetViewportExt设定转换时的比例因子,但是我在msdn上查到,在固定映射模式下(MM_HIENGLISH MM_HIMETRIC MM_LOENGLISH MM_LOMETRIC MM_TEXT MM_TWIPS ), 这两个函数会被忽略.在另外两个映射模式下(MM_ANISOTROPIC,MM_ISOTROPIC)下,要用这两个函数设定比例因子
暂时先这样理解,还要在实际应用中去掌握,毕竟这是自己查资料的总结,实际应用了才会有所体会
设定映射模式后,可以用SetWindowOrg和SetViewportOrg来设定逻辑坐标的原点和设备坐标的原点然后在逻辑坐标下画图,逻辑坐标转换为设备坐标步骤(引用别人的):
(1)逻辑坐标值减去逻辑坐标原点(setWindowOrg中设置的值)(2)上面的结果乘以比例因子变为设备坐标值(3)上面结果加上设备坐标原点值(setViewportOrg中设置的值)然后在设备上显示
逻辑坐标和设备坐标的原点总是重合的,另外还有函数SetWindowExt和SetViewportExt设定转换时的比例因子,但是我在msdn上查到,在固定映射模式下(MM_HIENGLISH MM_HIMETRIC MM_LOENGLISH MM_LOMETRIC MM_TEXT MM_TWIPS ), 这两个函数会被忽略.在另外两个映射模式下(MM_ANISOTROPIC,MM_ISOTROPIC)下,要用这两个函数设定比例因子
暂时先这样理解,还要在实际应用中去掌握,毕竟这是自己查资料的总结,实际应用了才会有所体会
相关文章推荐
- 自加自减运算符的错误使用和理解【个人学习笔记,如有错误欢迎指正】
- 对于指针(一级指针)的理解(文中如有理解错误,欢迎指正,大家互相学习)
- cortex M0 startup代码解析 如有错误欢迎指出
- LINUX系统启动流程(个人理解总结,错误欢迎指出)
- 矩阵乘法在程序中的使用----如有错误欢迎指出
- 关于QTreeView和QStandardModel联合理解,外加显示委托的理解(学习笔记,如有错误还望指出)
- (原)OSX 也变成svn服务器---1(欢迎大家指出错误。交流提升自己。)
- 对于开发者来说,不得不需要知道的东西(持续更新,如有错误欢迎指正)
- 在MFC中生成数据源过程中所遇到的问题及解决(如有错误,请指出)
- (原)OSX 也变成svn服务器---2(欢迎大家指出错误。交流提升自己。)
- Z-Stack协调器中_NIB.PanId 的理解(错误之处还望大神指出,只做学习笔记)
- 谈一下eclipse中的图片路径问题,第一次写,不喜勿喷.有错误欢迎指出。
- C语言实现的二叉树遍历(递归),如果有错误欢迎指出
- 关于@class和#import".h"(只是个人理解,如有错误请原谅)
- (原)OSX 也变成svn服务器---3(欢迎大家指出错误。交流提升自己。)
- 剑指Offer22题栈的压入、弹出序列 java解答(如有错误欢迎批评指正)
- 将本地项目放到Github上(应该可以这么说)[如有错误欢迎大家批评指正]
- 经验总结。持续更新,全部个人理解,如果错误欢迎指正
- 对继承的一点点理解,可能不完全正确,还请大家指出错误。
- C++反汇编揭秘2 – VC编译器的运行时错误检查(RTC)