基于VC++的OpenGL编程讲座之坐标变换
摘要:OpenGL通过相机模拟、可以实现计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换等,同时,OpenGL还实现了矩阵堆栈等。理解掌握了有关坐标变换的内容,就算真正走进了精彩地三维世界。 一、OpenGL中的三维物体的显示 (一)坐标系统 在现实世界中,所有的物体都具有三维特征,但计算机本身只能处理数字,显示二维的图形,将三维物体及二维数据联系在一起的唯一纽带就是坐标。 为了使被显示的三维物体数字化,要在被显示的物体所在的空间中定义一个坐标系。这个坐标系的长度单位和坐标轴的方向要适合对被显示物体的描述,这个坐标系称为世界坐标系。世界坐标系是始终固定不变的。...
阅读全文
MFC对象拖拽功能(不只是文件拖拽)(转)
摘要:原文链接:http://topic.okbase.net/200912/2009122416/3784490.htmlMFC为实现对象拖放提供了如下三个类。 1.COleDataSource。用于启动一次拖放操作,并向系统提供拖放对象的数据。类中的成员函数有如下三种: a.设定提供数据的方式和使用的数据格式。提供数据的方式有两种,一种是即时方式,另一种是延迟方式;即时方式需要在拖动开始之前提供数据;延迟方式不需要立即提供数据,当系统请求有关数据时,由OnRenderData()等虚函数提供所需的数据。可以用CacheGlobalData()等函数指定使用即时方式提供数据,也可以用DelayRe
阅读全文
VC视图的多页打印(转)
摘要:原文链接:http://www.cnblogs.com/xianyunhe/archive/2011/12/18/2292043.htmlMFC框架中内置了打印框架,已实现单页的打印,如果视图中只有一页图形,并依据像素打印视图,不需要添加任何代码就可直接使用,非常方便。侯捷的《深入浅出MFC》中对MFC的打印框架进行了剖析,详细讲解各函数之间的调用关系,但对多页打印,却并未讲解。下面研究如何实现多页打印。1、页面布局在界面区域较大时,我们需要多页打印,如Excel表的打印。当横向和纵向都无法打印在一页时,页面的布局可逐行排列,也可以逐列排列。页面布局的两种示意图如下所示。(1)逐行排列页面布局
阅读全文
文字旋转
摘要:VC中文字旋转实现方式:1、不使用Graphics,直接用CDC绘制方法:编辑字体,然后DC选中这个字体,即可实现具体: CFont* pFont = pDC->GetCurrentFont(); LOGFONT logFont ; pFont->GetLogFont(&logFont); logFont.lfEscapement = 600;//900/10 = 90 wcscpy(logFont.lfFaceName,L"楷体_GB2312"); HFONT hFont = CreateFontIndirect(&logFont); pDC-
阅读全文