可可西

2010年8月5日 #

球面相机旋转

摘要: 旋转作为三维开发的基本功能,在任何3D程序中都需要。用户通过旋转来实现对模型各个面的浏览,形成直观印象。球面相机旋转这种旋转方式用户体验方式要优于x轴y轴混合旋转方式,模型旋转的方向和鼠标移动方向保持一致。下面给出一种“球面相机”实现旋转的方法。原理:移动鼠标时,通过gluLookAt来改变视点的位... 阅读全文

posted @ 2010-08-05 16:15 可可西 阅读(2732) 评论(4) 推荐(3) 编辑

2010年8月4日 #

视点变换和模型变换

摘要: 在OpenGL中,视点变换和模型变换被当做一种变换来看待。改变视点的位置和改变模型的位置是一个相对的过程,例如将物体从(0.0, 0.0, 0.0)移至(0.0, 0.0, -1.0)相当于将相机从(0.0, 0.0, 0.0)移至(0.0, 0.0, 1.0)。视点变换、模型变换将被合并,形成模型视点矩阵。可以使用函数glMatrixMode(GL_MODELVIEW)来指定当前矩阵模式为模型视... 阅读全文

posted @ 2010-08-04 18:08 可可西 阅读(1202) 评论(0) 推荐(1) 编辑

局部坐标系和全局坐标系

摘要: 概述全局坐标系是三维空间物体所在的坐标系,模型的顶点坐标就是基于这个坐标系来表达的。而局部坐标系是一个假想的坐标系,该坐标系与物体的相对位置至始至终是不变的,假想出这个坐标系的目的主要是为了正向理解对三维场景中物体执行的“平移和旋转”操作。使用局部坐标系理解模型变换时,所有的变换操作直接作用与局部坐标系,由于局部坐标系与物体的相对位置不对,因此,当对局部坐标系进行“平移”、“旋转”和“缩放”时,物体在场景中位置和形状也会发生相应的变化。几点注意(1)“全局坐标系”和“局部坐标系”是两种理解模型变换的手段。(2)当存在“缩放”变换时,应采用“全局坐标系”“反向”阅读代码来理解。如果存在缩放变换, 阅读全文

posted @ 2010-08-04 17:07 可可西 阅读(13603) 评论(0) 推荐(2) 编辑

2010年8月3日 #

投影变换与视口变换

摘要: 一些说明:0. 投影变换:描述如何指定视景体(viewing volume)的形状和方向。视口变换:解释如何控制三维模型坐标到屏幕坐标的变换。1. 无论是透视投影还是平行投影(正交投影),只有在视景体中的物体才可见。2. 下图为OpenGL默认视点位置 (eyex,eyey,eyez) = (0.0,0.0,0.0); (upx,upy,upz) = (0.0,1.0,0.0) 指向z轴负半轴。(... 阅读全文

posted @ 2010-08-03 17:24 可可西 阅读(2194) 评论(1) 推荐(0) 编辑

2010年7月30日 #

OpenGL(Win32 窗体应用程序框架)

摘要: 以VS2008为例,下面是“核心步骤”截图:Step 1:Step 2:Step 3:将“Lesson01.cpp”加到当前工程中,Lesson01.cpp内容如下:[代码]           Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)162 ... 阅读全文

posted @ 2010-07-30 22:24 可可西 阅读(2876) 评论(1) 推荐(0) 编辑

OpenGL(Win32控制台应用程序框架)

摘要: 以VS2008为例,下面是“核心步骤”截图:Step 1:Step 2:step 3:在“stdafx.h”中添加如下代码:[代码]step 4:在“Win32OpenGL.cpp”中添加如下代码:[代码]程序运行效果: 阅读全文

posted @ 2010-07-30 21:41 可可西 阅读(1319) 评论(0) 推荐(1) 编辑

2010年7月25日 #

编写vbs脚本发送邮件

摘要: 执行vbs脚本文件的程序为: system32文件下的 。 下面vbs脚本代码可以完成用"chen@gmail.com"账号发送一封邮件给"kekec@qq.com"。 1 NameSpace ="http://schemas.microsoft.com/cdo/configuration/" 2 阅读全文

posted @ 2010-07-25 15:01 可可西 阅读(2605) 评论(1) 推荐(0) 编辑

2010年7月21日 #

MFC窗体程序中添加调试控制台

摘要: 在编写复杂程序的过程中,我们经常需要将一些信息输出到文件或者屏幕上。较控制台应用程序,MFC窗体程序要显得麻烦一些!下面有2种方法来实现为MFC窗体程序添加调试控制台,方便程序员调试程序和了解当前程序的运行状态。重要Windows API:AllocConsole(); //创建Console窗口 FreeConsole(); //销毁Console窗口(1)启动控制台窗口需要包含的头文件#include <io.h>#include <cstdio>#include <FCNTL.H>Code highlighting produced by Actipr 阅读全文

posted @ 2010-07-21 20:13 可可西 阅读(2021) 评论(0) 推荐(0) 编辑

2010年7月18日 #

cout重定向到文件

摘要: cout默认是与监视器(屏幕)相连,cout出来的内容会输出到屏幕上,通常是会在命令行窗口之中。但有时,我们希望将cout出来的具体日志、错误信息写到某个文件之中,而屏幕上仅仅显示出当前进行的任务,以及程序运行状态等信息。我们可以使用下面重定向的方式来实现:[代码]运行后的结果:写入到“out.txt”中的内容: 阅读全文

posted @ 2010-07-18 15:32 可可西 阅读(6104) 评论(0) 推荐(0) 编辑

2010年7月16日 #

C++"流"的那些事儿

摘要: C++中关于“流”存在两个版本,一个是老的版本(非标准化的版本),一个是新的版本(属于C++标准库中的一部分)。目前这两个版本在VC6.0中均被支持,强烈建议使用标准化的版本。下面是新旧版本的类结构图。old versionnew version新旧版本的区别:(1)使用不同的头文件 old version 头文件如:#include <fstream.h> ... 阅读全文

posted @ 2010-07-16 15:19 可可西 阅读(996) 评论(0) 推荐(0) 编辑

导航