VC++图形程序设计基础
- 格式:ppt
- 大小:610.00 KB
- 文档页数:65
实验指导书刘文涛2013目录第一章图形学实验环境和要求 (4)1.1 VC++实验环境 (4)1.1.1 基本环境 (4)1.1.1 开发图形程序的一般流程 (7)1.1.3 基本绘图函数介绍 (11)1.2 OpenGL (22)1.2.1 OpenGL介绍 (22)1.2.2 OpenGL开发环境 (24)1.2.3 OpenGL函数 (24)1.2.4 回调函数 (25)1.2.4 一个典型OpenGL例程 (26)1.3 实验要求 (29)1.3.1 实验内容 (29)1.3.2 实验方法 (29)1.3.3 实验效果 (30)第二章直线生成算法 (30)2.1 实验原理 (30)2.1.1 DDA算法 (30)2.1.2 Bresenham算法 (30)2.2 实验内容 (30)2.3 参考示例程序 (30)第三章圆和椭圆生成算法 (32)3.1 实验原理 (32)3.2 实验内容 (32)3.3 参考示例程序1 (32)3.4 参考示例程序2 (33)第四章裁剪算法 (35)4.1 实验原理 (35)4.2 实验内容 (35)4.3 示例程序 (35)4.3.1 参考例子1 (35)4.3.2参考例子2 (38)第五章二维变换 (40)5.1 实验原理 (40)5.2 实验内容 (40)5.3 示例程序 (40)5.3.1参考例子1 (40)第六章三维变换 (44)6.1 实验原理: (44)6.2 实验内容 (45)6.3示例程序 (45)第七章填充算法 (47)7.1 实验原理: (47)7.2 实验内容 (47)7.3示例程序 (47)第八章曲线曲面 (50)8.1 实验原理 (50)8.2 实验内容 (50)8.3示例程序 (51)8.3.1 参考例子(1) (51)8.3.2 参考例子(2) (52)8.3.3 参考例子(3) (54)8.3.4 参考例子(4) (56)第九章真实感图形绘制 (59)9.1 实验原理 (59)9.2 实验内容 (59)9.3示例程序 (59)9.3.1参考例子(1) (59)9.3.2参考例子(2) (61)9.3.3参考例子(3) (63)第十章动画 (66)10.1 实验原理 (66)10.2 实验内容 (66)10.3示例程序 (66)10.3.1 参考例子 (66)参考文献: (72)第一章图形学实验基础1.1 VC++实验环境1.1.1 基本环境Microsoft Visual C++ 6.0 是微软推出的功能强大的可视化C/C++语言编译器,运行在Windows 9x/2000/NT等平台上,可以建立32位应用程序。
计算机图形学的心得体会计算机图形学是20世纪60年代以后,随着计算机技术(包括计算机硬件技术和软件技术)的发展和完善而形成的一门新兴学科。
至今,计算机图形学已在建筑,机械,电子,造船,航空,汽车,轻工,广告,艺术等领域得到了广泛的应用。
可以说,它几乎影响了所有涉及领域,冲击和改变着传统的设计模式。
一打开计算机,人们首先接触到的就是计算机图形学的内容,因为计算机的用户界面已广泛使用了计算机图形技术。
事实上,计算机图形技术已深入到各个领域。
计算机图形的生成一般包括两种方法:程序绘图和交互绘图。
所谓程序绘图,就是先用计算机语言(例如C语言)编好绘图程序,然后运行该程序并绘出图形。
而交互绘图则是应用交互式图形软件,通过交互命令(键盘命令,菜单命令等)由计算机生成图形。
程序绘图是交互式绘图的基础。
简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。
从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。
计算机图形学一个主要的目的就是要利用计算机产生令人赏心悦目的真实感图形。
为此,必须建立图形所描述的场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。
所以计算机图形学与另一门学科计算机辅助几何设计有着密切的关系。
事实上,图形学也把可以表示几何场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。
同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。
这学期我们主要学习了MFC图形编程,学习了《 VC++图形程序设计基础》。
从中学习了如何建立MFC项目和简单的输入与输出。
三视图即主视图、俯视图、侧视图是分别将三维立体对正面、水平面和侧面作正投影得到的三个基本视图。
图形设计在电脑中占有举足轻重的地位,我们常见的绘图程序有Windows中的画图,Adobe的PhotoShop,以及Flash动画和3D Max等等,多媒体软件开拓了我们的视野,也改变了我们的生活,下面我们通过一个例子来学习绘图世界的基础——画点:1、画点也是一个设备输出,需要向系统提出申请,画点的函数是SetPixel(x,y,RGB(255:255:255));其中x,y是指定点的位置,RGB是红绿蓝三元色,指定点的颜色;2、启动VC,新建一个名为Pixel的Win32 A pplication工程,再新建一个相同名称的头文件和源程序文件,在头文件中输入函数的申明,在源程序中输入窗口框架代码(轻车熟路了);3、加入消息处理函数过程,画点是用鼠标,因此需要处理鼠标按键消息WM_LBUTTONDOWN以及鼠标拖动的消息WM_MOUSEMOVE,考考你:鼠标拖动和移动一不一样?消息处理过程MainWndProc(绿色双斜杠部分是注释),有的一行太长会自动折到下一行,代码如下:LRESULT A PIENTRY M ainWndProc(HWND hWnd,UINT message,WPAR A M wParam, LPAR AM lParam){HDC hdc;P A INTSTRUCT ps;switch (message){case W M_LBUTTONDOWN://接收到左键消息;case W M_RBUTTONDOWN://接收到右键消息;hdc=G etDC(hWnd);//获取设备;SetPixel( hdc,//画点函数;LOWORD(lParam), HIWORD(lParam),//画点的位置x,y;(message==W//画点的颜色;M_LBUTTONDOWN)?RGB(0,0,255):R G B(255,0,0) );//问号判断表达式?,消息==左键就返回第一个RGB蓝色,否则用后面第二个RGB颜色红色作为画点的颜色;ReleaseDC(hWnd,hdc);//释放设备;break;case W M_M OUSE M OVE://鼠标移动消息if(wParam & M K_LBUTTON || wParam & M K_RBUTTON)//检测是否有按键;{//移动同时还有鼠标按键,也就是拖动鼠标;hdc=G etDC(hWnd);SetPixel( hdc,LOWORD(lParam),HIWORD(lParam),(wParam & M K_LBUTTON)?RGB(0,0,255):RGB(255,0,0) );ReleaseDC(hWnd,hdc);}break;case W M_PAINT://加一行标题提示;hdc=BeginPaint(hWnd,&ps);SetBk M ode(hdc,TRANSPARENT);//透明背景;TextOut(hdc,40,40,"按下鼠标左、右键画点:",lstrlen("按下鼠标左、右键画点:"));TextOut(hdc,40,45,"__________________",lstrlen("__________________")); EndPaint(hWnd,&ps);break;case W M_DESTROY://退出;PostQuit M essage(0);break;default:return(DefWindowProc(hWnd,message,wParam,lParam));}return (0);}保存一下文件,单击编译条上的“构建”按钮,如果出现错误就仔细检查一下,然后单击“执行”按钮,试着用鼠标左键和右键写出自己的名字;本节学习了在用户区绘图的基本代码设计,如果你成功地完成了练习,请继续学习下一课内容;。
《程序设计基础》课程实验指导书主撰人:刘喜平主审人:万常选江西财经大学信息管理学院二○一六年一月目录第1章C程序开发环境与调试 (1)1.1 Visual Studio Community 2015安装与使用 (1)1.1.1 Visual Studio Community 2015简介 (1)1.1.2 Visual Studio Community 2015安装 (2)1.1.3 Visual Studio Community 2015中编写C程序 (4)1.1.4 Visual Studio Community 2015中运行C程序 (7)1.1.5 Visual Studio Community 2015中调试C程序 (8)1.2 Code::Blocks的安装与使用 (14)1.2.1 Code::Blocks简介 (14)1.2.2 Code::Blocks的安装 (15)1.2.3 在Code::Blocks中编写程序 (17)1.2.4 在Code::Blocks中运行和调试程序 (20)第2章实验项目 (22)2.1 实验概述 (22)2.2 实验项目 (24)2.2.1 实验一:C程序集成开发环境及简单C程序的运行 (24)2.2.2 实验二:数据类型 (25)2.2.3 实验三:运算符、表达式及简单C程序设计 (27)2.2.4 实验四:基本程序设计技术 (30)2.2.5 实验五:C程序结构与函数 (32)2.2.6 实验六:数组 (34)2.2.7 实验七:程序设计基本算法 (39)2.2.8 实验八:指针 (42)2.2.9 实验九:结构体、联合共用体及位运算 (46)2.2.10 实验十:文件操作 (47)第1章C程序开发环境与调试C语言作为一种经典的程序设计语言,被程序员广泛使用,自然也有着丰富的开发工具。
维基百科维护了一个不完全的C编译器列表1,其中列出的C编译器有55个之多!C程序的开发工具(一般称为IDE,即集成开发环境)就更多了,因为一个编译器可能被多个IDE使用。