当前位置:文档之家› 计算机图形学opengl 简易风车

计算机图形学opengl 简易风车

计算机图形学opengl 简易风车
计算机图形学opengl 简易风车

#include

#include

#include

#include

#include

#pragma comment(lib,"opengl32.lib")

#pragma comment(lib,"glu32.lib")

#pragma comment(lib,"glaux.lib")

void InitGL(void);

void CALLBACK ReDraw(GLsizei w,GLsizei h);

void CALLBACK Draw(void);

void XY();

void myred();

void myred1();

void mygre();

void mygre1();

void myblu();

void myblu1();

void circle();

void squ();

void squ1();

void squ2();

void squ3();

void InitGL(void)

{

auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);

auxInitPosition(0,0,640,480);

auxInitWindow("Translate");

glClearColor(1.0,1.2,0.5,0);

glClear(GL_COLOR_BUFFER_BIT);

}

void CALLBACK ReDraw(GLsizei w,GLsizei h)

{

glViewport(0,0,w,h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(-320.0,320.0,-240.0,240.0,-100,100);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void CALLBACK Draw(void)

{

int i,j,n=100;

glClear(GL_COLOR_BUFFER_BIT);

glLoadIdentity();

XY();

//glColor3f(1.0,0.0,0.0);

for(j=1;j<100;j++)

{

squ();squ1();

for(i=1,n=1;i<=24;i++,n++)

{

glLineWidth(3);

glRotatef(15*n,0.0,0.0,1.0);

circle();

myred(); mygre();myblu();

Sleep(100);

myred1(); mygre1();myblu1();squ2();squ3();

glRotatef(-15*n,0.0,0.0,1.0);

squ();squ1();

}

}

}

void XY(void)

{

glColor3f(0.0,0.0,0.0);

glBegin(GL_LINES);

glVertex2i(-320,0);glVertex2i(320,0);

glVertex2i(0,-240);glVertex2i(0,240);

glEnd();

glFlush();

}

void myred()

{

//glBegin(GL_LINE_LOOP);

glBegin(GL_POL YGON);

glColor3f(1.0,0.0,0.0);

glVertex2i(0,0);

glVertex2i(-30,200);

glVertex2i(30,200);

glEnd();

glFlush();

}

void myred1()

{

//glBegin(GL_LINE_LOOP);

glBegin(GL_POL YGON);

glColor3f(1.0,1.2,0.5);

glVertex2i(0,0);

glVertex2i(-30,200);

glVertex2i(30,200);

glEnd();

glFlush();

}

void mygre()

{

//glBegin(GL_LINE_LOOP);

glBegin(GL_POL YGON);

glColor3f(0.0,1.0,0.0);

glVertex2i(0,0);

glVertex2i(120,-162);

glVertex2i(165,-120);

glEnd();

glFlush();

}

void mygre1()

{

//glBegin(GL_LINE_LOOP);

glBegin(GL_POL YGON);

glColor3f(1.0,1.2,0.5);

glVertex2i(0,0);

glVertex2i(120,-162);

glVertex2i(165,-120);

glEnd();

glFlush();

}

void myblu()

{

//glBegin(GL_LINE_LOOP);

glBegin(GL_POL YGON);

glColor3f(0.0,0.0,1.0);

glVertex2i(0,0);

glVertex2i(-120,-162);

glVertex2i(-165,-120);

glEnd();

glFlush();

}

void myblu1()

{

//glBegin(GL_LINE_LOOP);

glBegin(GL_POL YGON);

glColor3f(1.0,1.2,0.5);

glVertex2i(0,0);

glVertex2i(-120,-162);

glVertex2i(-165,-120);

glEnd();

glFlush();

}

void circle()

{

int x0=0,y0=0,r=10;

int i,n=20;

float st;

glLineWidth(40);

st=(360.0/n)*(3.14/180);

glEnable(GL_LINE_STIPPLE);

glColor3f(1.0,0.0,1.0);

glBegin(GL_LINE_LOOP);

for(i=0;i

glVertex2f(x0+r*cos(i*st),y0+r*sin(i*st));

glEnd();

glFlush();

}

void squ()

glBegin(GL_POL YGON);

glColor3f(0.8,0.3,0.0);

glVertex2i(-100,100);

glVertex2i(100,100);

glVertex2i(-180,-240);

glVertex2i(180,-240);

glEnd();

glFlush();

}

void squ1()

{

glBegin(GL_POL YGON);

glColor3f(0.8,0.3,0.0);

glVertex2i(100,100);

glVertex2i(-100,100);

glVertex2i(180,-240);

glEnd();

glFlush();

}

void squ2()

{

glBegin(GL_POL YGON);

glColor3f(1.0,1.2,0.5);

glVertex2i(-100,100);

glVertex2i(100,100);

glVertex2i(-180,-240);

glVertex2i(180,-240);

glEnd();

glFlush();

}

void squ3()

{

glBegin(GL_POL YGON);

glColor3f(1.0,1.2,0.5);

glVertex2i(100,100);

glVertex2i(-100,100);

glVertex2i(180,-240);

glEnd();

glFlush();

}

void main(void)

{

InitGL();

auxReshapeFunc(ReDraw);

auxMainLoop(Draw);

}

《计算机英语》教学大纲

《计算机英语》教学大纲 (待定) 课程代码:09111306 课程名称:计算机英语 总学时:56 一、课程任务与目的 随着计算机技术的迅速发展和广泛应用,计算机在经济和社会发展中的地位日益重要。而 国内计算机技术的应用与研究普遍滞后于西方尤其是美、英等发达的资本主义国家。如何才能跟上计算机技术发展与应用的最新水平,并迅速地掌握与利用各种新技术成果为我国的现代 化建设服务呢?一个必要的条件就是要能熟练地阅读外文的计算机技术文献、资料和书籍。由于大量的最新研究成果和新产品都是以英文公布于世的。因此,每个从事计算机科学与技术的教学、科研、工程技术及经营管理的人员都必须具有一定的计算机英语水平。(本课程在大学一、二年级基础英语课程结柬后开设,作为专业阅读课)通过本课程的教学,使学生掌握必要的计算机英语基础词汇和基本术语,养成良好的专业阅读习惯,以便融会贯通地运用英语这个工具去帮助解决理论上和实践中所遇到的问题,这就是计算机专业开设计算机英语课程目的和 任务之所在。 学习本课程的主要目的: (一)介绍计算机技术系最新进展,为专业理论的深入学习提供指导。 (二)使学生掌握基本的系统的计算机专业术语,能阅读关于计算机专业的 英文书籍,为进一步学习打下良好的基础。 二、阅读大纲 (一)Introduction 1.Organization0f computer system components 2.Type of computer 3.Computer generations (二)Hardware and system concepts 1.Computer codes 2.What is a processsor 3.the storage hierarchy 4.computer—system input/output 5.multiprocessing 6.performance measurement and evaluation (三)Discrete mathmatics 1.mathmatical logic 2.Boolcan algebras 3.graph theory 4.combinational problems (四)Algorithm 1.Algorithm attribute 2.algorithms and complexity

计算机图形学OpenGL中绘制太阳_地球_月亮的运动模型源代码

#include static int day = 148; // day的变化:从0到359 void myDisplay(void) { glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(75, 1, 1, 400000000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1); // 红色的“太阳” glColor3f(1.0, 0.0, 0.0); glutSolidSphere(69600000, 100, 100); // 蓝色的“地球” glColor3f(0.0, 0.0, 1.0); glRotatef(day/360.0*360.0, 0.0, 0.0, -1.0); glTranslatef(150000000, 0.0, 0.0); glutSolidSphere(15945000, 100, 100); // 黄色的“月亮” glColor3f(1.0, 1.0, 0.0); glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0, 0.0, -1.0); glTranslatef(38000000, 0.0, 0.0); glutSolidSphere(4345000, 100, 100); glFlush(); glutSwapBuffers(); } void myIdle(void) { ++day; if( day >= 360 ) day = 0; myDisplay(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowPosition(100, 100); glutInitWindowSize(450, 450);

研究生计算机图形学课程室内场景OpenGL--实验报告Word版

《高级计算机图形学》实验报告 姓名:学号:班级: 【实验报告要求】 实验名称:高级计算机图形学室内场景 实验目的:掌握使用OpenGL生成真实感复杂对象的方法,进一步熟练掌握构造实体几何表示法、扫描表示法、八叉树法、BSP树法等建模方法。 实验要求:要求利用OpenGL生成一个真实感的复杂对象及其周围场景,并显示观测点变化时的几何变换,要具备在一个纹理复杂的场景中漫游功能。要求使用到光线跟踪算法、 纹理映射技术以及实时绘制技术。 一、实验效果图 图1:正面效果图

图2:背面效果图 图4:背面效果图

图4:室内场景细节效果图 图5:场景角度转换效果图

二、源文件数据代码: 共6个文件,其实现代码如下: 1、DlgAbout.cpp #include "StdAfx.h" #include "DlgAbout.h" CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() 2、FormCommandView.cpp #include "stdafx.h" #include "Tool.h" #include "MainFrm.h" #include "FormCommandView.h" #include "ToolDoc.h" #include "RenderView.h" // Download by https://www.doczj.com/doc/bc13350625.html, #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif // CFormCommandView IMPLEMENT_DYNCREATE(CFormCommandView, CFormView) CFormCommandView::CFormCommandView() : CFormView(CFormCommandView::IDD) { //{{AFX_DATA_INIT(CFormCommandView)

计算机图形学作业-Display-答案分析

计算机图形学作业I 一.判断题 1.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(×) 2.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;(√) 3. 相似变换是刚体变换加上等比缩放变换;(√) 4. 保距变换是刚体变换加上镜面反射;(√) 5. 射影变换保持直线性,但不保持平行性。(√) 二、填空题 1.透视投影的视见体为截头四棱锥形状;平行投影的视见体为长方体形状。 2.字符的图形表示可以分为矢量表示和点阵表示两种形式。 3.仿射变换保持直线的平行性 4.刚体变换保持长度 5.保角变换保持向量的角度 三、单项选择题 1. 分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( D) A. 512KB; B. 1MB; C. 2MB; D. 3MB ; 2. 在透视投影中,主灭点的最多个数是( C ) A 1; B 2; C 3; D 4 3. 以下关于图形变换的论述不正确的是( B ) A. 平移变换不改变图形大小和形状,只改变图形位置; B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系; C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变; 4. 使用下列二维图形变换矩阵:将产生变换的结果为( D ) A. 图形放大2倍; B. 图形放大2倍,同时沿X、Y1个绘图单位; C.沿X坐标轴方向各移动2个绘图单位; D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。 5. 下列有关投影的叙述语句中,正确的论述为(B ) A. 透视投影具有近小远大的特点; B. 平行投影的投影中心到投影面距离是无限的; C. 透视投影变换中,一组平行于投影面的线的投影产生一个灭点; T =

计算机图形学基础期末考试试题

一、填空题 1.将多边形外部一点A与某一点B用线段连接,若此线段与多边形边界相交的次数为??????????,则点B在多边形外部。若此线段与多边形边界相交的次数为??????????,则点B在多边形内部。 2.生成直线的四点要求是_______________________,____________________________,____________________________________,速度要快。 3.由5个控制顶点Pi(i=0,1,…4)所决定的3次B样条曲线,由??????????段3次B样条曲线段光滑连接而成。 4.用于减少或克服在“光栅图形显示器上绘制直线、多边形等连续图形时,由离散量表示连续量引起的失真”的技术叫??????????。 5.图形的数学表示法一般有??????????,??????????,??????????。 1.一个交互性的计算机图形系统应具有、、、、 输入等五方面的功能。 2.阴极射线管从结构上可以分为、和。 3.常用的图形绘制设备有和,其中支持矢量格式。 4.PHIGS和GKS将各种图形输入设备从逻辑上分为六种:定位设备、笔划设 备、、、和。 5.通常可以采用和处理线宽。 6.齐次坐标表示就是用维向量表示n维向量。 7.平行投影根据可以分为投影和投影。 8.一个交互式计算机图形处理系统包括图形软件和_____________,图形软件又分为 _____________、_____________和三部分。 9.构成图形的要素包括和,在计算机中通常用采用两种方法来表示 图形,他们是和。 10.荫罩式彩色显像管的结构包括、、和。 11.目前常用的PC图形显示子系统主要由3个部件组成:、和一 个ROM BIOS芯片。 12.在交互输入过程中,图形系统中有_____________、、和其组 合形式等几种输入(控制)模式。 13.填充一个特定区域,其属性选择包括、和。 14.计算机中表示带有颜色及形状信息的图和形常用和参数法,其中用参数法描 述的图形称为,用描述的图形称为。 15.在显示技术中,我们常常采用提高总的光强等级。 16.常用的交互式绘图技术有、、和。

计算机图形学基础教学大纲

《计算机图形学基础》课程教学大纲 一、课程概述 (一)基本说明 中文名称:计算机图形学基础课程代码:16JS062 总学时/学分:48/3 考核方式:考试 适用专业:计算机科学与技术 (二)课程属性 1.课程性质 本课程是计算机科学与技术专业选修课,主要介计算机图形学的经典核心体系:图形系统、二维图形生成、几何变换、二维与三维观察、三维对象(实体造型与曲线曲面)、真实感图形技术、交互技术及动画等。通过本课程的学习,有助于学生对计算机图形学原理的理解和图形编程技术的掌握。 2.课程与课程群的联系 本课程与《Java程序设计基础》、《C语言程序设计》、《线性代数》等基础课程有着密切的关系,通过本课程的学习,使学生掌握图形方面的基本知识。为了使学生能够顺利完成本课程的学习,在学习本课程之前,需对相关课程(群)有一定的了解和掌握。 前修课程:《Java程序设计基础》、《C语言程序设计》、《数据库原理及应用》等,这些课程对本课程学习起着基础铺垫作用。 二、教学设计 (一)课程设置的主要依据 本课程是一门理实融合、教学做一体的理论课程,着眼于满足计算机科学与技术专业对应用型人才需求,遵循“基础/应用”的导向原则,教学内容与教学组织紧紧围绕应用型的计算机科学与技术专业人才培养目标进行设计、选择和实施,以“必需、够用、适度超前”为度,突出打牢理论基础和实践能力培养。在教学过程中,注重创新精神、实践能力和职业道德的培养,倡导探究性学习(或研讨式、案例式、专题式、项目式等),引导学生主动参与教学过程,主动思考、勤于实践、知行合一,逐步培养学生分析解决计算机类项目开发过程中实际问题、沟通交流与团队协作能力。 (二)课程设计思路 以《Java程序设计基础》、《C语言程序设计》、《线性代数》等课程为基础,紧紧围绕计算机科学与技术专业应用型人才培养目标,准确把握本课程在计算机科学与技术课程群中的定位和作用,以能力为本位,强调打牢基本知识和基本理论基础,强化基本技能训练,充分利用信息化教学平台,打破以知识

计算机图形学 实验 利用OpenGL实现图形的平移、旋转、缩放

XXXXXXXX大学(计算机图形学)实验报告 实验名称利用OpenGL实现图形的平移、旋转、缩放 实验时间年月日 专业姓名学号 预习操作座位号 教师签名总评 一、实验目的: 1.了解OpenGL下简单图形的平移、旋转、缩放变换的编程的基本思想; 2.掌握OpenGL下简单图形的平移、旋转、缩放变换的编程的基本步骤; 二、实验原理: 在OpenGL中,可以使用下面三个函数便捷地实现简单图形平移、旋转、缩放变换的功能: glRotatef(theta, vx, vy, vz); glTranslatef(dx, dy, dz); glScalef(sx,sy,sz); 三、实验内容: // 1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "glut.h" #include "math.h" void display() { glClear( GL_COLOR_BUFFER_BIT); // Clear the frame buffer glColor3f( 0.0, 1.0, 1.0); // Set current color to green glBegin( GL_POLYGON); // Draw the triangle glV ertex2f( 0.0, -0.2); glV ertex2f( 0.2, 0.0); glV ertex2f( 0.0, 0.0); glEnd(); glFlush(); } void dsp()

计算机图形学作业-Display-答案

计算机图形学作业 I 一.判断题 1.齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点;(×) 2.若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去;(√) 3. 相似变换是刚体变换加上等比缩放变换;(√) 4. 保距变换是刚体变换加上镜面反射;(√) 5. 射影变换保持直线性,但不保持平行性。(√) 二、填空题 1.透视投影的视见体为截头四棱锥形状;平行投影的视见体为长方体形状。 2.字符的图形表示可以分为矢量表示和点阵表示两种形式。 3.仿射变换保持直线的平行性 4.刚体变换保持长度 5.保角变换保持向量的角度 三、单项选择题 1. 分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( D) A. 512KB; B. 1MB; C. 2MB; D. 3MB ; 2. 在透视投影中,主灭点的最多个数是( C ) A 1; B 2; C 3; D 4 3. 以下关于图形变换的论述不正确的是( B ) A. 平移变换不改变图形大小和形状,只改变图形位置; B. 拓扑关系不变的几何变换不改变图形的连接关系和平行关系; C.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变 D.错切变换虽然可引起图形角度的改变,但不会发生图形畸变; 4. 使用下列二维图形变换矩阵:将产生变换的结果为( D ) A. 图形放大2倍; B. 图形放大2倍,同时沿X、Y1个绘图单位; C.沿X坐标轴方向各移动2个绘图单位; D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位。 5. 下列有关投影的叙述语句中,正确的论述为(B ) A. 透视投影具有近小远大的特点; B. 平行投影的投影中心到投影面距离是无限的; C. 透视投影变换中,一组平行于投影面的线的投影产生一个灭点; T =

安徽中医学院 计算机图形学试卷

安徽中医学院2010~2011学年第二学期《计算机图形学》课程 期末考试试卷 命题教师: 沈同平 试卷编号:H0602 审核人: 王世好 适用专业 计算机科学与技术 考试班级 08医软 考生姓名 学号 班级 一、选择题(每小题1分,共20分) 1.计算机图形学与计算机图像处理的关系是( ) A 、计算机图形学是基础,计算机图像处理是其发展 B 、不同的学科,研究对象和数学基础不同,但它们之间也有可转换部分 C 、同一学科在不同场合的不同称呼而已 D 、完全不同的学科,两者毫不相干 2.下列不属于计算机图形学的应用的是( ) A 、计算机辅助绘图及设计 B 、事务管理中的交互式绘图 C 、科学计算可视化 D 、人工智能 3.下列不属于计算机图形软件国际标准的是( ) A 、GKS B 、PHIGS C 、国标码 D 、 IGES 4.计算机图形显示器一般使用什么颜色模型 ( ) A 、 RG B B 、 CMY C 、 HSV D 、 HLS 5.分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存 ( ) A 、512K B B 、1MB C 、2MB D 、3MB ; 6.触摸屏是( )设备. A 、输入 B 、输出 C 、输入输出 D 、既不是输入也不是输出 7.下述用数值微分法(DDA)画斜率的绝对值小于1的直线的C 语言子程序中哪一 行有错 ( ) Void drawLineWithDDA (int x1, int y1, int x2, int y2, int color) { A 、int x, y; B 、float k = (float)(y2-y1)/(x2-x1); C 、for(x=x1,y=y1;x<=x2;x++) { drawPixel(x,y,color);

《计算机图形学》课程教学大纲

《计算机图形学》课程教学大纲 课程编号:11090132 课程名称:计算机图形学 英文名称:Computer Graphics 学时与学分:2总学时:32实验学时:0课内上机学时:8 先修课程要求:大学数学、工程图学、C语言 适应专业:交通设备信息工程 参考教材: 1、Donald Hearn,M. Pauline Baker ,Computer Graphics (C Version),Prentice Hall ,1997; 2、陆润民等,计算机绘图,高等教育出版社(面向21世纪教材); 3、孙家广等,计算机图形学(第三版),清华大学出版社,1999。 课程简介: 计算机图形学是关于计算机图形技术的科学,它是研究用计算机生成、处理和输出图形的一门新兴学科,是CAD/CAM技术以及信息化设计、制造及图像处理的重要技术基础。本课程着重研究怎样将工程技术人员获得的数据、几何模型等信息或设计思想用计算机数字化模型和图形表达,是工程技术人员表达和交流设计思想和信息的一门现代化工具课程。一、课程在培养方案中的地位、目的和任务 本课程是交通设备信息工程专业应该选修的一门学科基础课。课程的主要目的是培养学生形、数结合的能力和图形程序设计能力,为图形的数学处理、后续课程的学习、图形软件开发打下必要的基础。本课程的主要任务是学习计算机图形学的基本原理和基础知识;学习应用高级语言编制图形程序的基本方法和技能;学习各种基本图形生成算法;学习常用的图形变换和图形处理算法;培养开发图形程序的基本能力。 二、课程的基本要求 1、了解计算机图形系统的硬件和软件; 2、了解基本的图形数据结构; 3、掌握常用的图形生成算法; 4、掌握常用的图形几何变换和观察变换方法; 5、了解通用的图形标准; 6、掌握常用的三维对象表达方法; 7、掌握基于一种图形软件包的图形程序设计方法。 三、课程的基本内容以及重点难点 基本内容: 1、计算机图形学的应用; 2、计算机图形系统; 3、图形标准及图形软件包; 4、输出图元及其属性; 5、二维几何变换及二维观察; 6、三维物体的表达; 7、三维几何和建模变换; 8、三维观察。 重点:图形生成、图形变换、图形程序设计。

计算机图形学试验指导一–OpenGL基础

计算机图形学实验指导(一) –OpenGL基础 1.综述 这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。 尽管OpenGL包括渲染命令,但却独立于任何窗口系统和操作系统。因此,OpenGL并不包括用来打开窗口以及从键盘或鼠标读取事件的命令。在这里,我们应用GLUT库简化Windows窗口操作。 2.准备GLUT库 下载glut压缩包后,解压,把glut32.dll放在Windows的system32目录下,将glut32.lib 放在C:\program files\Microsoft Visual Studio\VC98\Lib目录中,将glut.h放在C:\program files\Microsoft Visual Studio\VC98\Include\GL目录中 2.在VC中新建项目 新建一个项目。 选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,回车即可。VC为你创建一个工作区(WorkSpace),你的项目就放在这个工作区里。 为项目添加文件 为了使用OpenGL,我们需要在项目中加入相关的Lib文件:glut32.lib 选中菜单Project->Settings项,在link选项卡中的Object/Library modules栏中加入glut32.lib。 选择菜单File中的New选项,弹出一个分页的对话框,选中页Files中的C++sourcefile,填入文件名,钩选添加到刚才建的那个工程里,然后就可以开始编程了。 3.一个OpenGL的例子 #include //初始化OpenGL void init(void) { glClearColor(0.0f, 0.0f, 0.0f, 0.0f);//设置背景颜色 glShadeModel(GL_FLAT);//设置明暗处理 } //主要的绘制过程 void display(void) { glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓存 glBegin(GL_LINES);//开始画直线 glColor3f(1.0f, 1.0f, 1.0f);//设置颜色为白色 glVertex2f(30.0f, 30.0f);//第一根线的两个端点 glVertex2f(200.0f, 400.0f);

计算机图形学作业答案

计算机图形学作业答案 第一章序论 第二章图形系统 1.什么是图像的分辨率? 解答:在水平和垂直方向上每单位长度(如英寸)所包含的像素点的数目。 2.计算在240像素/英寸下640×480图像的大小。 解答:(640/240)×(480/240)或者(8/3)×2英寸。 3.计算有512×512像素的2×2英寸图像的分辨率。 解答:512/2或256像素/英寸。 第三章二维图形生成技术 1.一条直线的两个端点是(0,0)和(6,18),计算x从0变到6时y所对应的值,并画出结果。 解答:由于直线的方程没有给出,所以必须找到直线的方程。下面是寻找直线方程(y =mx+b)的过程。首先寻找斜率: m =⊿y/⊿x =(y 2-y 1 )/(x 2 -x 1 )=(18-0)/(6-0) = 3 接着b在y轴的截距可以代入方程y=3x+b求出 0=3(0)+b。因此b=0,所以直线方程为y=3x。 2.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么? 解答: (1)计算dx:dx=x 2-x 1 。 (2)计算dy:dy=y 2-y 1 。 (3)计算m:m=dy/dx。 (4)计算b: b=y 1-m×x 1 (5)设置左下方的端点坐标为(x,y),同时将x end 设为x的最大值。如果 dx < 0,则x=x 2、y=y 2 和x end =x 1 。如果dx > 0,那么x=x 1 、y=y 1 和x end =x 2 。 (6)测试整条线是否已经画完,如果x > x end 就停止。 (7)在当前的(x,y)坐标画一个点。 (8)增加x:x=x+1。 (9)根据方程y=mx+b计算下一个y值。 (10)转到步骤(6)。 3.请用伪代码程序描述使用斜截式方程画一条斜率介于45°和-45°(即|m|>1)之间的直线所需的步骤。

计算机图形学期末考试题库

一、单项选择题 1. 计算机图形显示器一般使用什么颜色模型?(B) A)RGB;B) CMY;C) H SV ;D) HLS 2. 哪一个不是国际标准化组织( ISO)批准的图形标准?(D) A)GKS;B) PHIGS;C) C GM ;D) DXF 3.下述用数值微分法(DDA画斜率的绝对值小于1的直线的C语言子程序中哪一行有错? (A) Void drawLineWithDDA(int x1, int y1, int x2, int y2, int color) { A) int x, y; B ) float k = (float)(y2-y1)(x2-x1); C ) for(x=x1,y=y1;x<=x2;x++) { drawPixel(x,y,color); } D ) y+=k; } } 4. 下述绕坐标原点旋转a 角的坐标变换矩阵中哪一项是错误的?(B) | A B | | C D | A) cos a; B)sin a; C)sin a; D)cos a 5. 下述哪一条边不是非均匀有理B样条(NURBS的优点?(D) B)对于间距不等的数据点,用NURBS以合的曲线比用均匀B样条拟合的曲线更光滑 C)NURB醍供的权控制方法比用控制点更能有效的控制曲线的形状 D)使用NURB呦以提高对曲面的显示效率 A) NURBSL均匀B样条能表示更多的曲面

6. 透视投影中主灭点最多可以有几个?(D) A)0; B)1; C)2; D)3 7. 在用扫描线法进行点与多边形之间的包含性检测时,下述哪一个操作不正确?(D) A)当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数0次 B)当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数2次 C)当射线与多边形交于某顶点时且该点的两个邻边在射线的两侧时,计数1次 D)当射线与多边形的某边重合时,计数1次 &在简单光反射模型中,由物体表面上点反射到视点的光强下述哪几项之和?(C)(1)环境光的反射光强;(2)理想漫反射光强;(3)镜面反射光强;(4)物体间的反射光强。 A(1)和(2) B)(1)和(3) C)(1)(2)和(3) D)(1)(2 )(3 )和(4 ) 9. 下面关于NURBS的论述,哪个是错误的? ( B) A. 可通过控制顶点和权因子来改变形状; B. 仅具有仿射不变性,但不具有透射不变性; C. 非有理B样条、有理及非有理Bezier曲线、曲面是NURBS的特例; D. 可表示标准解析形状和自由曲线、曲面; 10. 下述关于Bezier 曲线P1(t), P2(t)t [0,1]的论述,哪个是错误的?() A. P1(1)= P2(0) = P,在P处P1(1), P2(0)的切矢量方向相同,大小相等, 则 P1(t), P2(t)在P处具有G1连续;

计算机图形学课程教学大纲

《计算机图形学》课程教学大纲一、课程基本信息 课程代码:110053 课程名称:计算机图形学 英文名称:Computer Graphics 课程类别:专业课 学时:72 学分: 适用对象:信息与计算科学专业本科生 考核方式:考试(平时成绩占总成绩的30%) 先修课程:高级语言程序设计、数据结构、高等代数 二、课程简介 中文简介: 计算机图形学是研究计算机生成、处理和显示图形的学科。它的重要性体现在人们越来越强烈地需要和谐的人机交互环境:图形用户界面已经成为一个软件的重要组成部分,以图形的方式来表示抽象的概念或数据已经成为信息领域的一个重要发展趋势。通过本课程的学习,使学生掌握计算机图形学的基本原理和基本方法,理解图形绘制的基本算法,学会初步图形程序设计。 英文简介: Computer Graphics is the subject which concerned with how computer builds, processes and shows graphics. Its importance has been shown in people’s more and more intensively need for harmony human-machine interface. Graphics user interface has become an important part of software. It is a significant trend to show abstract conception or data in graphics way. Through the learning of this course, students could master Computer Graphics’basic theories and methods,understand graphics basic algorithms and learn how to design basic graphics program. 三、课程性质与教学目的 《计算机图形学》是信息与计算科学专业的一门主要专业课。通过本课程的学习,使学生掌握基本的二、三维的图形的计算机绘制方法,理解光栅图形生成基本算法、几何造型技术、真实感图形生成、图形标准与图形变换等概念和知识。学会图形程序设计的基本方法,为图形算法的设计、图形软件的开发打下基础。 四、教学内容及要求 第一章绪论 (一)目的与要求 1.掌握计算机图形学的基本概念; 2.了解计算机图形学的发展、应用; 3.掌握图形系统的组成。

2016年春《计算机图形学》作业 (答案)

2016年北京大学现代远程教育《计算机图形学》作业题 注意事项: 1.本作业题中所标注的章节均以学习指导和课件为准; 2.作业请独立自主完成,不要抄袭。 一、填空题 1.(第1章)图形是由点、线、面、体等几何要素和明暗、灰度(亮度)、色彩等非几何要素构成的,从现实世界中抽象出来的带有灰度、色彩及形状的图或形。 2.(第2章)一个计算机图形系统至少应具有计算、存储、输入、输出、交互等基本功能; 3.(第2章)光栅扫描图形显示器是画点设备,显示一幅图像所需要的时间等于显示整个光栅所需的时间,而与图像的复杂程度无(填“有”或“无”)关; 4.(第3章)在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。 5.(第3章)多边形填充的扫描线算法先求出扫描线与多边形边的交点,利用____扫描线的连续性求出多边形与扫描线相交的连续区域,然后利用多边形边的连续性,求出下一条扫描线与多边形的交点,对所有扫描线由下到上依次处理。 6.(第3章)将区域内的一点(种子)赋予给定的颜色,然后将这种颜色扩展到整个区域内的过程叫区域填充;区域的表示方法有内点表示和 边界表示两种。 7.(第4章)常用坐标系一般可以分为世界坐标系、局部坐标系、观察坐标系、设备坐标系、标准化设备坐标系。

8.(第4章)对于基本几何变换,一般有平移、旋转、反射和错切等。这些基本几何变换都是相对于 坐标原点 和 坐标轴 进行的几何变换。 9.(第4章)在三维空间中的物体进行透视投影变换,最多可能产生 3 个主灭点。 10.(第6章)根据输入数据的不同性质,图形核心系统(GKS)和三维图形系统 (PHIGS)把输入设备在逻辑上分成以下几类: 定位___设备、 笔画__设备、 定值 设备、 选择 设备、 拾取 设备、 字符串 设备。 11.(第7章)隐藏面和隐藏线的消除有两种基本的算法,一种是基于 图像空间 的方法,一种是基于 物体空间 的方法。 12.(第7章)扫描线z 缓冲器算法所用到的数据结构包括一个 多边形y 筒 、一个 边y 筒 、一个 多边形活化表__、一个 边活化表___; 13.(第8章)通常,人们把反射光考虑成3个分量的组合,这3个分量分别是_ 环境光 反射、 漫 反射和 镜面 反射。 14.(第8章)为了解决由多个平面片近似表示曲面物体的绘制问题,人们提出了各种的简单算法,其中最具代表性的两种方法: Gouraud 光亮度插值技术 和 Phong 法向量插值技术 。 15.(第9章)对于三次多项式曲线,常用四个几何条件进行描述:两端点的位置P 0=P (0)和P 1=P (1);两端点的切矢量和;那么参数曲线的多项式表示为,其中,F 0(t )=___13223+-t t __,F 1(t )=__2332t t +-___,G 0(t )=__t t t +-232___, G 1(t )=____23t t -___。 二、选择题 1.(第2章)下列不属于图形输入设备的是____D____; A .键盘 B. 鼠标 C. 扫描仪 D. 打印机

计算机图形学期末考试试卷

计算机图形学期末考试试卷(C卷) 一、判断题(本大题共 10 小题,每小题 1 分,共 10 分) 1.计算机图形生成的基本单位是线段。 ( F ) 2.构成图形的要素除了点、线、面、体等几何要素外,还应该包括 灰度、色彩、线型、线宽等非几何要素。 ( N ) 3.在齐次坐标系中,若用矩阵来表示各种运算,则比例和旋转变换 是矩阵F乘法运算,而平移变换是矩阵加法运算。 ( F ) 4.Z-Buffer消隐算法有利于硬件实现,并且不需要排序。 ( N ) 5.二次Bezier曲线和二次B样条曲线都通过控制多边形的首末端 点。 ( F ) 6.一个向量的齐次坐标的表示形式是唯一的。 ( F ) 7.计算机图形技术是随着图形硬件设备的发展而发展起来的。 ( N ) 8.Phong算法的计算量要比Gouraud算法小得多。

( F ) 9. 将某二维图形整体放大2倍,其变换矩阵可写为。 ( F ) 10. 图形软件标准是为提高图形软件的易用性而提出的。 ( F ) 二、填空题(本大题共 10 空,每空 1 分, 共 10 分) 1. 在多边形填充过程中,常采用、 左闭右开 和 下闭上开 的原则对边界像素进行处理。 2. 基本几何变换指 平移 、 比例 和 旋转 三种变换。 3. 屏幕上最小的发光单元叫作 像素 ,它的多少叫做 分辨率 。 ??????????200010001

4.ISO批准的第一个图形软件标准是GKS ,进入20 世纪90年代后,存在的事实上的图形软件标准主要是 OpenGL 和Direct x。 5.图形的表示方法有两种:参数法和点阵 法。 6.多边形的表示方法有顶点表示法和点阵表 示法两种。 7.计算机三维模型的描述有线框模型、表面模 型和实体模型。 8.颜色包含3个要素:色调、饱和度和 亮度。 三、简答题(本大题共 5 小题,每小题 5 分,共 25 分) 1.计算机图形学研究的主要内容是什么 2.什么是齐次坐标齐次空间点 P(X、Y、W) 对应的笛卡尔坐标

最新计算机图形学期末考试试卷

最新计算机图形学期末考试试卷 一、判断题(本大题共 10 小题,每小题 1 分,共 10 分) 1. 计算机图形生成的基本单位是线段. ( F ) 2. 构成图形的要素除了点、线、面、体等几何要素外,还应该包括灰度、色彩、线型、 线宽等非几何要素. ( N ) 3. 在齐次坐标系中,若用矩阵来表示各种运算,则比例和旋转变换是矩阵F 乘法运算, 而平移变换是矩阵加法运算. ( F ) 4. Z-Buffer 消隐算法有利于硬件实现,并且不需要排序. ( N ) 5. 二次Bezier 曲线和二次B 样条曲线都通过控制多边形的首末端点. ( F ) 6. 一个向量的齐次坐标的表示形式是唯一的. ( F ) 7. 计算机图形技术是随着图形硬件设备的发展而发展起来的. ( N ) 8. Phong 算法的计算量要比Gouraud 算法小得多. ( F ) 9. 将某二维图形整体放大2倍,其变换矩阵可写为. ( F ) 10. 图形软件标准是为提高图形软件的易用性而提出的. ( F ) 二、填空题(本大题共 10 空,每空 1 分,共 10 分) 1. 在多边形填充过程中,常采用、 左闭右开 和 下闭上开 的原则 对边界像素进行处理. 2. 基本几何变换指 平移 、 比例 和 旋转 三种变换. 3. 屏幕上最小的发光单元叫作 像素 ,它的多少叫做 分辨率 . 4. ISO 批准的第一个图形软件标准是 GKS ,进入20世纪90年代后,存 在的事实上的图形软件标准主要是 OpenGL 和 Direct x . ?? ?? ? ?????200010001

5.图形的表示方法有两种:参数法和点阵法. 6.多边形的表示方法有顶点表示法和点阵表示法两种. 7.计算机三维模型的描述有线框模型、表面模型和实体 模型. 8.颜色包含3个要素:色调、饱和度和亮度 . 三、简答题(本大题共5 小题,每小题5 分,共25 分) 1.计算机图形学研究的主要内容是什么? 2.什么是齐次坐标?齐次空间点 P(X、Y、W) 对应的笛卡尔坐标是什么? 3.帧缓存的容量与什么有关?假定一个光栅扫描系统,分辨率800×600,要求可显示颜色256种,请问帧缓存的容量需要多少字节? 4.什么是走样?什么是反走样?常用的反走样技术有哪些? 5.简单光照模型的反射光由哪几部分组成,光照计算时有哪两种明暗处理技术?

计算机图形学期末考试试卷D卷

计算机图形学期末考试试卷(D 卷) 一、 填空题(每空1分,共10分) 1. 图形的表示方法有两种: 和 。 2. 目前常用的两个事实图形软件标准是OpenGL 和 。 3. 多边形有两种表示方法: 和点阵表示法。 4. 二维图形基本几何变换包括平移、 、 等变换。 5. 投影可以分为 投影和 投影。 6. 描述一个物体需要描述其几何信息和 。 7. 在Z 缓冲器消隐算法中Z 缓冲器每个单元存储的信息是每一个像素点的 。 二、 判断题(每小题1分,共10分,对的画√,错的画×) 1. 由三个顶点可以决定一段二次B 样条曲线,若三顶点共线时则所得到的曲线褪化为一条直线段。( ) 2. DDA (微分方程法)是Bresenham 算法的改进。( ) 3. 插值得到的函数严格经过所给定的数据点,逼近是在某种意义上的最佳近似。( ) 4. 齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点。( ) 5. 若相对于某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或者旋转变换,然后将原点平移回去。( ) 6. Phong 算法的计算量要比Gouraud 算法小得多。 ( ) 7. 将某二维图形整体放大2倍,其变换矩阵可写为???? ??????200010001。( ) 8. 在种子填充算法中所提到的八连通区域算法同时可填充四连通区域。( ) 9. 边缘填充算法中是将扫描线与多边形交点左方的所有像素取补。( ) 10. 计算机图形技术是随着图形硬件设备的发展而发展起来的。( ) 三、 选择题(每小题1分,共10分) 1.在图形变换中引入齐次坐标的目的是 。 A )便于实现缩放变换 B) 统一表示几种基本变换,便于计算 C )便于实现错切变换 D )无特殊目的,一直沿用而已 2. 透视投影中主灭点最多可以有几个? A ) 0 B )1 C )2 D )3 3. 在简单光照模型中,由物体表面上的点反射到视点的光强是下述哪几项之和? ①环境光的反射光强 ②理想漫反射光强 ③镜面反射光强 ④物体间的反射光强。

电子科大15春《计算机图形学》在线作业1答案

15春《计算机图形学》在线作业1 一、单选题(共10 道试题,共50 分。) 1. 下列有关平面几何投影的叙述语句中,正确的论述为____。 A. 在平面几何投影中,若投影中心移到距离投影面无穷远处,则成为平行投影 B. 透视投影与平行投影相比,视觉效果更有真实感,而且能真实地反映物体的精确的尺寸和形状 C. 透视投影变换中,一组平行线投影在与之平行的投影面上,可以产生灭点 D. 在三维空间中的物体进行透视投影变换,可能产生三个或者更多的主灭点 正确答案:A 2. ____是可以判别点在区域内外的方法。 A. 反走样法 B. 射线法 C. 中点分割法 D. Roberts方法 正确答案:A 3. 触摸屏是____设备。 A. 输入 B. 输出 C. 输入输出 D. 既不是输入也不是输出 正确答案:C 4. 灰度等级为16级,分辨率为1024*1024的显示器,至少需要的帧缓存容量为____。 A. 512KB B. 1MB C. 2MB D. 3MB 正确答案:A 5. 在下列有关曲线和曲面概念的叙述语句中,错误的论述为____。 A. 实体模型和曲面造型是CAD系统中常用的主要造型方法,曲面造型是用参数曲面描述来表示一个复杂的物体 B. 在曲线和曲面定义时,使用的基函数应有两个重要性质:凸包性和仿射不变性 C. 从描述复杂性和形状灵活性考虑,最常用的参数曲面是3次有理多项式的曲面 D. 参数形式和隐含形式都是精确的解析表示法,在计算机图形学中,它们一样好用 正确答案:D 6. 下在下列叙述语句中,错误的论述为____。 A. 在图形文件系统中,点、线、圆等图形元素通常都用其几何特征参数来描述

计算机图形学期末考试试卷

计算机图形学期末考试试卷(C 卷) 一、判断题(本大题共 10 小题,每小题 1 分,共 10 分) 1. 计算机图形生成的基本单位是线段。 ( F ) 2. 构成图形的要素除了点、线、面、体等几何要素外,还应该包括灰度、色彩、线型、 线宽等非几何要素。 ( N ) 3. 在齐次坐标系中,若用矩阵来表示各种运算,则比例和旋转变换是矩阵F 乘法运算, 而平移变换是矩阵加法运算。 ( F ) 4. Z-Buffer 消隐算法有利于硬件实现,并且不需要排序。 ( N ) 5. 二次Bezier 曲线和二次B 样条曲线都通过控制多边形的首末端点。 ( F ) 6. 一个向量的齐次坐标的表示形式是唯一的。 ( F ) 7. 计算机图形技术是随着图形硬件设备的发展而发展起来的。 ( N ) 8. Phong 算法的计算量要比Gouraud 算法小得多。 ( F ) 9. 将某二维图形整体放大2倍,其变换矩阵可写为。 ( F ) 10. 图形软件标准是为提高图形软件的易用性而提出的。 ( F ) 二、填空题(本大题共 10 空,每空 1 分,共 10 分) 1. 在多边形填充过程中,常采用、 左闭右开 和 下闭上开 的原则 对边界像素进行处理。 2. 基本几何变换指 平移 、 比例 和 旋转 三种变换。 3. 屏幕上最小的发光单元叫作 像素 ,它的多少叫做 分辨率 。 4. ISO 批准的第一个图形软件标准是 GKS ,进入20世纪90年代后,存 在的事实上的图形软件标准主要是 OpenGL 和 Direct x 。 ??????????200010001

5.图形的表示方法有两种:参数法和点阵法。 6.多边形的表示方法有顶点表示法和点阵表示法两种。 7.计算机三维模型的描述有线框模型、表面模型和实体 模型。 8.颜色包含3个要素:色调、饱和度和亮度。 三、简答题(本大题共5 小题,每小题5 分,共25 分) 1.计算机图形学研究的主要内容是什么? 2.什么是齐次坐标?齐次空间点 P(X、Y、W) 对应的笛卡尔坐标是什么? 3.帧缓存的容量与什么有关?假定一个光栅扫描系统,分辨率800×600,要求可显示颜色256种,请问帧缓存的容量需要多少字节? 4.什么是走样?什么是反走样?常用的反走样技术有哪些? 5.简单光照模型的反射光由哪几部分组成,光照计算时有哪两种明暗处理技术?

相关主题
文本预览
相关文档 最新文档