计算机图形学

计算机图形学
计算机图形学

计算机图形学

姓名:李倩倩 班级:硕研10-14

学号:

第一题:

#include <> #include <> void MidpintLine( HDC hDC,int x0,int y0,int x1,int y1,unsigned long color) { int a,b,delta1,delta2,d,x,y; a=y0-y1; b=x1-x0; d=2*a+b; delta1=2*a; delta2=2*(a+b); x=x0; y=y0; SetPixel(hDC,x,y,color); while(x0) xinc=1; else xinc=-1; if(dy>0) yinc=1; else yinc=-1; dx=abs(dx);dy=abs(dy); int x=xs,y=ys; int i=0; if(dx==0&&dy==0) SetPixel(pdc,x,y,color); SetPixel(hDC,x,y,color); else if(dx==0) { for(i=0;i

else if(dx>dy)

{

int p=2*dy-dx;

int inc1=2*dy,inc2=2*(dy-dx);

for(i=0;i

{

SetPixel(pdc,x,y,color);

x+=xinc;

if(p<0)

p+=inc1;

else

{

y+=yinc;

p+=inc2;

}

}

}

else

{

int p=2*dx-dy;

int inc1=2*dx,inc2=2*(dx-dy);

for(i=0;i

{

SetPixel(pdc,x,y,color);

y+=yinc;

if(p<0)

p+=inc1;

else

{

x+=xinc;

p+=inc2;

}

}

}

}

void circlePlotPoints(HDC pdc, int xc,int yc,int x,int y,COLORREF color) {

SetPixel(pdc,xc+x,yc+y,color);

SetPixel(pdc,xc+x,yc-y,color);

SetPixel(pdc,xc-x,yc+y,color);

SetPixel(pdc,xc-x,yc-y,color);

SetPixel(pdc,xc+y,yc+x,color);

SetPixel(pdc,xc+y,yc-x,color); SetPixel(pdc,xc-y,yc+x,color);

SetPixel(pdc,xc-y,yc-x,color);

}

void MidpointCircle(HDC pdc,int xc,int yc,int r,COLORREF color)

{

int x=0;

int y=r;

int p=1-r;

while(x<=y)

{

circlePlotPoints(pdc,

xc,yc,x,y,color);

x++;

if(p<0)

p+=2*x+1;

else

{

y--;

p+=2*(x-y)+1;

}

}

}

void drawCircle(HDC pdc,int

xc,int yc,int radius,COLORREF

color)

{

int x,y,p;

x=0;

y=radius;

p=3-2*radius;

while (x

circlePlotPoints(pdc,xc,yc,x,y,

color);

if (p<0) p=p+4*x+6;

else{

p=p+4*(x-y)+10;

y-=1;

}

x+=1;

}

if(x==y)

circlePlotPoints(pdc,

xc,yc,x,y,color);

}

int main(int argc, char* argv[])

{

char arg[200]={0};

arg[0]='\"';

strcpy(arg+1,argv[0]);

int

len=int(strlen(arg));

arg[len]='\"';

HWND

hWnd=FindWindow(NULL,arg);

HDC

hDC=GetDC(hWnd);

unsigned long color=0xffffff; MidpintLine(hDC,10,30,100,100,color );

bresenham(hDC,10,10,600,600,color); MidpointCircle(hDC,50,50,30,color); drawCircle(hDC,100,100,30,color); return 0;

}

第二题:

#include

#include <>

#include <>

void init()

{

glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0f, 800.0f, 0.0f, 600.0f);

}

class wcPt2D {

public:

wcPt2D(float _x, float _y) {

x = _x, y = _y;

}

GLfloat x, y;

};

wcPt2D pt[] = {wcPt2D(0,0), wcPt2D(100,0), wcPt2D(50,50)};

= verts[k].x + tx; verts[k].y = verts[k].y + ty;

}

glBegin(GL_POLYGON);

for(k = 0;k

glVertex2f(verts[k].x,

verts[k].y);

glEnd();

}

wcPt2D vertsRot[3] = {wcPt2D(0,0), wcPt2D(0,0), wcPt2D(0,0)};

= + (verts[k].x - * cos(theta) - (verts[k].y - * sin(theta); vertsRot[k].y = + (verts[k].x - * sin(theta) + (verts[k].y - * cos(theta);

}

glBegin(GL_POLYGON);

for(k = 0;k

glVertex2f(vertsRot[k].x,

vertsRot[k].y);

glEnd();

}

wcPt2D vertsNew[3] = {wcPt2D(0,0), wcPt2D(0,0), wcPt2D(0,0)};

= verts[k].x * sx + * (1 - sx); vertsNew[k].y = verts[k].y * sy + * (1 - sy);

}

glBegin(GL_POLYGON);

for(k = 0;k

vertsNew[k].y);

glEnd();

}

void Render()

{

glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 0.0f, 0.0f); translatePolygon(pt, 3, 200,20);

//rotatePolygon(pt, 3, pt[0], 10); scalePolygon(pt, 3, pt[0], 5,5); glFlush();

}

int main(int argc, char** argv)

{ glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(800,600); glutInitWindowPosition(10,10); glutCreateWindow("2D Transformation"); init(); glutDisplayFunc(Render); glutMainLoop(); return 0; }第三题:

#include <> #include <> #include <> int sign(float x) { if(x>0) return 1; else if(x<0) return -1; else return 0; } int Int(float x) { return (int) x; } void DDA(int x1,int y1,int x2,int y2,int color) { int length,i; float ax,ay,x,y; length=abs(x2-x1); if(abs(y2-y1)>length) length=abs(x2-x1); ax=(float)(x2-x1)/length; ay=(float)(y2-y1)/length; x=x1+*sign(ax); y=y1+*sign(ay); for(i=1;i<=length;i++) { putpixel(Int(x),Int(y),color); x=x+ax; y=y+ay; } } void main() { float re[8][2]; int gmode,gdriver=DETECT; int i,j,row; float sum; int p1[10]; int p2[10]; float array[8][4]={{0,0,0,1},{1,0,0,1},{1,1,0,1},{0,1,0,1},{0,0,1,1},{1,0,1,1},{1,1,1,1},{0,1,1,1}}; float t[4][3]={{1,0,0},{0,1,0},{0,0,0},{0,0,0}}; float l=2,m=4,n=6,k=; float result[8][3]; t[2][2]=1/k; t[3][0]=l; t[3][1]=m; t[3][2]=(n/k)+1; for(i=0;i<8;i++) { row=row%3; for(row=0;row<3;row++){ sum=0; for(j=0;j<4;j++) {sum=sum+array[i][j]*t[j][row]; } result[i][row]=sum; } } for(i=0;i<8;i++) { re[i][0]=result[i][0]/result[i][2]; re[i][1]=result[i][1]/result[i][2]; } for(i=0;i<4;i++) for(j=0;j<2;j++) p1[i*2+j]=(int)(re[i][j]*150);

for(i=4;i<8;i++)

for(j=0;j<2;j++)

p2[(i-4)*2+j]=(int)(re[i][j]*100); p1[8]=p1[0];

p1[9]=p1[1];

p2[8]=p2[0];

p2[9]=p2[1];

for(i=0;i<10;i++)

initgraph(&gdriver,&gmode," "); DDA(p1[0],p1[1],p2[0],p2[1],12); DDA(p1[2],p1[3],p2[2],p2[3],12); DDA(p1[4],p1[5],p2[4],p2[5],12); DDA(p1[6],p1[7],p2[6],p2[7],12); drawpoly(5,p1);

drawpoly(5,p2);

getch();

closegraph();

return;

}

第四题:

#include<>

#include<>

char msg[1];

float px[6]={10,20,40,50,70,90};

float py[6]={10,30,50,40,30,20};

main()

{

float a0,a1,a2,a3,b0,b1,b2,b3;

int k,x,y,w;

float i,t,dt,n=6;

int graphDriver=DETECT;

int graphMode=0;

initgraph(&graphDriver,&graphMode,""); setcolor(BLUE);

setcolor(YELLOW);

dt=1/n;

for(k=0;k<10-1;k++)

{

moveto(px[k],py[k]);

lineto(px[k+1],py[k+1]);

}

setlinestyle(0,0,3);

for(k=0;k<10-3;k+=3) {

a0=px[k];

a1=-3*px[k]+3*px[k+1];

a2=3*px[k]-6*px[k+1]+3*px[k+2];

a3=-px[k]+3*px[k+1]-3*px[k+2]+px[k=3]; b0=py[k];

b1=-3*py[k]+3*py[k+1];

b2=3*py[k]-6*py[k+1]+3*py[k+2];

b3=-py[k]+3*py[k+1]-3*py[k+2]+py[k+3]; for(i=0;i

{

t=i*dt;

x=a0+a1*t+a2*t*t+a3*t*t*t;

y=b0+b1*t+b2*t*t+b3*t*t*t;

if(i==0)

moveto(x,y);

lineto(x,y);

}

}

getch();

closegraph();

}

第五题:

#include

#include

#include <>

GLfloat ctrlpoints[5][5][3] = {{{-2,0,0},{-1,1,0},{0,0,0},{1,-1,0},{2,0,0

}},

{{-2,0,-1},{-1,1,-1},{0,0,-1},{1,-1,-1},{2, 0,-1}},

{{-2,0,-2},{-1,1,-2},{0,0,-2},{1,-1,-2},{2,0,-2}},

{{-2,0,-3},{-1,1,-3},{0,0,-3},{1,-1,-3},{2, 0,-3}},

{{-2,0,-4},{-1,1,-4},{0,0,-4},{1,-1,-4},{2, 0,-4}}};

GLfloat mat_ambient[] = {,,,};

GLfloat mat_diffuse[] = {,,,};

GLfloat mat_specular[] = {,,,};

GLfloat light_ambient[] = {,,,};

GLfloat light_diffuse[] = {,,,};

GLfloat light_specular[] = {,,,};

GLfloat light_position[] = {,,,};

void myInit(void)

{

glClearColor(0,0,0,0);/

glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambien t);

glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffus e);

glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specu lar);

glMaterialf(GL_FRONT,GL_SHININESS,;

glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambien t);

glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffus e);

glLightfv(GL_LIGHT0,GL_SPECULAR,light_specu lar);

glLightfv(GL_LIGHT0,GL_POSITION,light_posit ion);

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

glEnable(GL_DEPTH_TEST);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_A LPHA);

glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE); glEnable(GL_BLEND);

glEnable(GL_AUTO_NORMAL);

glEnable(GL_NORMALIZE);

glFrontFace(GL_CW);

glShadeModel(GL_SMOOTH);

glEnable(GL_LINE_SMOOTH); }

void myDisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER

_BIT);

glColor3f,,;

glTranslatef,,;

glRotatef,,,;

glPushMatrix();

glEnable(GL_MAP2_VERTEX_3);

glMap2f(GL_MAP2_VERTEX_3,0,1,3,5,0,1,15,5,& ctrlpoints[0][0][0]);

glMapGrid2f,,,,,;

glEvalMesh2(GL_FILL,0,,0,;

glPopMatrix();

glutSwapBuffers();

}

void myReshape(GLsizei w,GLsizei h)

{

glViewport(0,0,w,h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective,(GLfloat)w/(GLfloat)h,,;

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

glTranslatef,,;

}

int main(int argc,char ** argv)

{

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GL UT_DEPTH);

glutInitWindowSize(400,400);

glutInitWindowPosition(200,200);

glutCreateWindow("lighted Bezier surface"); myInit();

glutReshapeFunc(myReshape);

glutDisplayFunc(myDisplay);

glutMainLoop();

return(0);

计算机图形学作业

计算机图形学第一次作业 计算机X班XXX 1XXX010XXX 1.你是否想用图形学的有关知识去解决一两个实际问题?你想解决的问题是什么?考虑如何解决? 答:我希望可以解决的有设计汽车外壳和制作动画。 解决方法:(1)汽车外壳 使用3D MAX/AutoCAD软件进行设计。 (2)制作动画 利用动画制作软件(3D MAX)在计算机上制作动画 2.某彩色图形显示系统,CRT显示器的分辨率为1024×1024,它可以从2^17次方种颜色中选择出2^15次方来显示,其帧缓冲器的容量应该如何计算?查色表的长度和宽度应为多少? 解:16b==2B 因为分辨率为1024x1024 所以1024*1024*2B=2MB 3.采用Bresenham画线算法,绘出起点(1,3),终点为(9,18)的直线段。 解: void DrawBresenhamline(int x0, int y0, int x1, int y1) { int dx = x1 - x0;//x偏移量 int dy = y1 - y0;//y偏移量 int ux = dx >0 ?1:-1;//x伸展方向 int uy = dx >0 ?1:-1;//y伸展方向 int dx2 = dx <<1;//x偏移量乘2 int dy2 = dy <<1;//y偏移量乘2 if(abs(dx)>abs(dy)) {//以x为增量方向计算 int e = -dx; //e = -0.5 * 2 * dx,把e 用2 * dx* e替换 int x = x0;//起点x坐标 int y = y0;//起点y坐标 for (x = x0; x < x1;x+=ux) { printf ("%d,%d\n",x, y); e=e + dy2;//来自2*e*dx= 2*e*dx + 2dy (原来是e = e + k) if (e > 0)//e是整数且大于0时表示要取右上的点(否则是右下的点) { y += uy; e= e - dx2;//2*e*dx = 2*e*dx - 2*dx (原来是e = e -1) } } } else {//以y为增量方向计算

计算机图形学 答案

计算机图形学Ⅰ 专业:计算机科学与技术 计算机科学与技术2092 2012年12月

第1章绪论 1、计算机图形学的概念?(或什么是计算机图形学?) 计算机图形学是研究怎样利用计算机表示、生成、处理和显示图形的(原理、算法、方法和技术)一门学科。 2、图形与图像的区别? 图像是指计算机内以位图(Bitmap)形式存在的灰度信息;图形含有几何属性,更强调物体(或场景)的几何表示,是由物体(或场景)的几何模型(几何参数)和物理属性(属性参数)共同组成的。 3、计算机图形学的研究内容? 计算机图形学的研究内容非常广泛,有图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真和虚拟现实等。 4、计算机图形学的最高奖是以 Coons 的名字命名的,而分别获得第一届(1983年)和第二 届(1985年)Steven A. Coons 奖的,恰好是 Ivan E. Sutherland 和 Pierre Bézier 。 5、1971年,Gourand提出“漫反射模型+插值”的思想,被称为 Gourand 明暗处理。 6、1975年,Phong提出了著名的简单光照模型—— Phong模型。 7、1980年,Whitted提出了一个光透明模型—— Whitted模型,并第一次给出光线跟踪算 法的范例,实现了Whitted模型。 8、以 SIGGRAPH 会议的情况介绍,来结束计算机图形学的历史回顾。 9、什么是三维形体重建? 三维形体重建就是从二维信息中提取三维信息,通过对这些信息进行分类、综合等一系列处理,在三维空间中重新构造出二维信息所对应的三维形体,恢复形体的点、线、面及其拓扑关系,从而实现形体的重建。 10、在漫游当中还要根据CT图像区分出不同的体内组织,这项技术叫分割。 11、一个图形系统通常由图形处理器、图形输入设备和输出设备构成。 12、CRT显示器的简易结构图 12、LCD液晶显示器的基本技术指标有:可视角度、点距和分辨率。

北语 20春《计算机图形学》作业_1234

20春《计算机图形学》作业_1 一、单选题 ( 每题4分, 共10道小题, 总分值40分 ) 1. A. (A) B. (B) C. (C) D. (D) 答:A V:131·9666·2906 2.最小最大判定法是一种快速拒绝判定方法,是利用多边形的___来替代,从而可以粗略判定两个多边形之间的关系。 A. 外接矩形 B. 最小外接凸包 C. 最小外接圆 D. 最小外接矩形 答:D 3.由空间的n+1个控制点生成的k次准均匀B样条曲线是由若干段B样条曲线逼近而成的, () A. 每个曲线段的形状仅由点列中的k个顺序排列的点所控制 B. 每个曲线段的形状仅由点列中的k+1个顺序排列的点所控制 C. 每个曲线段的形状仅由点列中的k+2个顺序排列的点所控制 D. 每个曲线段的形状仅由点列中的k+3个顺序排列的点所控制 答:B 4. 答:C 5. 答:C 6.如果不采用齐次坐标表示法,则___不能使用变换矩阵来实现。

A. 平移变换 B. 对称变换 C. 旋转变换 D. 比例变换 答:A 7.使用Bresenham直线生成算法画一条直线:起点和终点分别为A(15,12)和B(30,18),则起点的下一个点的坐标(x,y)和误差p分别为()。 A. (x,y) = (16,13),p = 9 B. (x,y) = (16,12),p = 9 C. (x,y) = (16,13),p = -21 D. (x,y) = (16,12),p = -21 答:B 8.由空间的n+1个控制点生成的k次准均匀B样条曲线() A. 是由n-k-1段B样条曲线逼近而成的 B. 是由n-k段B样条曲线逼近而成的 C. 是由n-k+1段B样条曲线逼近而成的 D. 是由n-k+2段B样条曲线逼近而成的 答:C 9.按照所构造的图形对象来分,点、曲线、平面、曲面或实体属于___,而山、水、云、烟等自然界丰富多彩的对象属于___。 A. 规则对象、不规则对象 B. 规则对象、属性对象 C. 不规则对象、几何对象 D. 不规则对象、属性对象 答:A 10.光线跟踪算法的主要计算量在于() A. 基于Phong模型的明暗度计算 B. 反射方向计算 C. 折射方向计算 D. 求交计算 答:D 二、多选题 ( 每题4分, 共5道小题, 总分值20分 ) 1.在几何造型中,下列论述中哪些是正确的___。 A. 在形体定义中,允许存在孤立的点 B. 面是形体上一个有限、非零的区域,一般由一个外环和若干个内环组成,但也可以没有任何环 C. 环是有序、有向边组成的面的封闭边界,环中的边不能相交,相邻的两条边可以共享一个端点 D. 形体上任意一点的足够小的邻域在拓扑上应该是一个等价的封闭圆

计算机图形学实验

实验1 直线的绘制 实验目的 1、通过实验,进一步理解和掌握DDA和Bresenham算法; 2、掌握以上算法生成直线段的基本过程; 3、通过编程,会在TC环境下完成用DDA或中点算法实现直线段的绘制。实验环境 计算机、Turbo C或其他C语言程序设计环境 实验学时 2学时,必做实验。 实验内容 用DDA算法或Besenham算法实现斜率k在0和1之间的直线段的绘制。 实验步骤 1、算法、原理清晰,有详细的设计步骤; 2、依据算法、步骤或程序流程图,用C语言编写源程序; 3、编辑源程序并进行调试; 4、进行运行测试,并结合情况进行调整; 5、对运行结果进行保存与分析; 6、把源程序以文件的形式提交; 7、按格式书写实验报告。 实验代码:DDA: # include # include

void DDALine(int x0,int y0,int x1,int y1,int color) { int dx,dy,epsl,k; float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)>abs(dy)) epsl=abs(dx); else epsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;k<=epsl;k++) { putpixel((int)(x+0.5),(int)(y+0.5),4); x+=xIncre; y+=yIncre; } } main(){ int gdriver ,gmode ;

计算机图形学作业-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.图形 2.像素图 3.参数图 4.扫描线 5.构造实体几何表示法 6.投影 7.参数向量方程 8.自由曲线 9.曲线拟合 10.曲线插值 11.区域填充 12.扫描转换 三、填空 1.图形软件的建立方法包括提供图形程序包、和采用专用高级语言。 2.直线的属性包括线型、和颜色。 3.颜色通常用红、绿和蓝三原色的含量来表示。对于不具有彩色功能的显示系统,颜色显示为。 4.平面图形在内存中有两种表示方法,即和矢量表示法。 5.字符作为图形有和矢量字符之分。 6.区域的表示有和边界表示两种形式。 7.区域的内点表示法枚举区域内的所有像素,通过来实现内点表示。 8.区域的边界表示法枚举区域边界上的所有像素,通过给赋予同一属性值来实现边界表示。 9.区域填充有和扫描转换填充。 10.区域填充属性包括填充式样、和填充图案。 11.对于图形,通常是以点变换为基础,把图形的一系列顶点作几何变换后,

连接新的顶点序列即可产生新的变换后的图形。 12.裁剪的基本目的是判断图形元素是否部分或全部落在之内。 13.字符裁剪方法包括、单个字符裁剪和字符串裁剪。 14.图形变换是指将图形的几何信息经过产生新的图形。 15.从平面上点的齐次坐标,经齐次坐标变换,最后转换为平面上点的坐标,这一变换过程称为。 16.实体的表面具有、有界性、非自交性和闭合性。 17.集合的内点是集合中的点,在该点的内的所有点都是集合中的元素。 18.空间一点的任意邻域内既有集合中的点,又有集合外的点,则称该点为集合的。 19.内点组成的集合称为集合的。 20.边界点组成的集合称为集合的。 21.任意一个实体可以表示为的并集。 22.集合与它的边界的并集称集合的。 23.取集合的内部,再取内部的闭包,所得的集合称为原集合的。 24.如果曲面上任意一点都存在一个充分小的邻域,该邻域与平面上的(开)圆盘同构,即邻域与圆盘之间存在连续的1-1映射,则称该曲面为。 25.对于一个占据有限空间的正则(点)集,如果其表面是,则该正则集为一个实体(有效物体)。 26.通过实体的边界来表示一个实体的方法称为。 27.表面由平面多边形构成的空间三维体称为。 28.扫描表示法的两个关键要素是和扫描轨迹。 29.标量:一个标量表示。 30.向量:一个向量是由若干个标量组成的,其中每个标量称为向量的一个分量。 四、简答题 1. 什么是图像的分辨率?

计算机图形学课程设计——扫雷游戏程序设计

计算机图形学课程设计——扫雷游戏程序设计

《计算机图形学》课程设计报告 VC++扫雷游戏的程序设计 专业班级: 小组成员:

指导老师: 日期:2012年12月24日 1、需求分析 本课程设计实现类似于Windows XP操作系统自带的扫雷游戏。该设计以V isual C++ 6.0为开发环境, Windows 7/XP为程序运行平台。在程序设计中,把整个雷区看成一个二维数组,把雷方块定义为具有所在雷区二维数组的行和列、当前状态、方块属性、历史状态的结构体,采用了MFC机制解决问题的方法。整个游戏程序包括了布雷、扫雷过程和结果三个阶段,在处理鼠标响应事件中伴随着GDI绘图。程序通过调试运行,实现简单的设计目标,满足扫雷游戏初学者的需要。 通过本课程设计,以便更好的巩固计算机图形学相关知识,掌握课程设计基本的方法和技巧,同时增加同学之间的团队合作精神以及培养分析问题、解决问题的能力。 2.总体设计 2.1 功能概述 扫雷游戏的游戏界面如图1所示。在这个界面中,由众多面积均等的小方块所组成的区域称之为雷区,雷区的大小由用户设置的游戏等级决定。

图1 游戏开始时,系统会在雷区中随机布下若干个地雷。安放地雷的小方块称之为雷方块,其他的称之为非雷方块。部署完毕后,系统会在其他非雷方块中填充一些数字。某一个具体数字表示与其紧邻的8个方块 中有多少雷方块。玩家可以根据这些信息去判断是否可以鼠标点击方块, 并把认为是地雷的方块打上标识。当玩家将所有地雷找出后,其余的非雷方块区域都已打开,此时游戏结束。在游戏过程中,一旦错误地打开了雷方块则立即失败,游戏结束。 游戏规则总结: ●开始:按左键开始游戏,按按钮或菜单重新开始。 ●左键:按下时,是雷则结束,非雷则显示数字。 ●数字:代表此数字周围一圈八格中雷的个数。 ●右键:奇次按下表示雷,偶数按下表示对上次的否定。 ●结束:左键按到雷结束,找出全部雷结束。 在游戏开始后,雷区上方有两个计数器。右边的计数器显示用户扫

计算机图形学作业-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 =

北交20春《计算机图形学》在线作业二答案

(单选题)1: 在下列有关曲线和曲面概念的叙述语句中,错误的论述为( ) A: 实体模型和曲面造型是CAD系统中常用的主要造型方法,曲面造型是用参数曲面描述来表示一个复杂的物体 B: 在曲线和曲面定义时,使用的基函数应有两个重要性质:凸包性和仿射不变性 C: 从描述复杂性和形状灵活性考虑,最常用的参数曲面是3次有理多项式的曲面 D: 参数形式和隐含形式都是精确的解析表示法,在计算机图形学中,它们一样好用 正确答案: D (单选题)2: 触摸屏是( )设备 A: 只是输入 B: 只是输出 C: 输入输出 D: 既不是输入也不是输出 正确答案: C (单选题)3: 要将一个“Symbol”保存下来在其它软件中使用,必须选中“Symbol”后对文档进行什么操作( ) A: “File-Save”存储文档 B: “File-Close”关闭文档 C: “File-Print”打印文档 D: “File-Export”导出文档 正确答案: D (单选题)4: 分别用编码裁剪算法和中点分割裁剪算法对一条等长的直线段裁剪,下面那一个说法是正确的( ) A: 编码裁剪算法的速度快于中点分割裁剪算法的裁剪速度 B: 编码裁剪算法的速度慢于中点分割裁剪算法的裁剪速度 C: 编码裁剪算法的速度和中点分割裁剪算法的裁剪速度一样 D: 编码裁剪算法的速度和中点分割裁剪算法的裁剪速度哪一个快,无法确定 正确答案: D (单选题)5: 在光亮度插值算法中,下列论述哪个是错误的( ) A: Gouraud明暗模型计算中,多边形与扫描平面相交区段上每一采样点的光亮度值是由扫描平面与多边形边界交点的光亮度插值得到的 B: Phong明暗处理模型中,采用了双线性插值和构造法向量函数的方法模拟高光 C: Gouraud明暗模型和Phong明暗处理模型主要是为了处理由多个平面片近似表示曲面物体的绘制问题 D: Phong明暗模型处理的物体表面光亮度呈现不连续跃变 正确答案: D (单选题)6: 在多边形的逐边裁剪算法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下4种情况,分别须输出一些顶点。请问哪种情况下输出的顶点是错误的( ) A: S和P均在可见的一侧,则输出S和P

计算机图形学作业题

计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数(颜色、线型等)来表示图形称图形的参数表示;枚举出图形中所有的点称图形的点阵表示,简称为图像(数字图像) 2. 什么是计算机图形学?计算机图形学有哪些研究内容? 3. 计算机图形学有哪些应用领域? 4. 计算机图形学有哪些相关学科分支?它们的相互关系是怎样的? 5. 图形系统的软件系统由哪些软件组成?举例说明。 6. 了解计算机图形系统的硬件。 7. 什么是显示器的分辨率、纵横比、刷新率? 8. 什么是像素、分辨率、颜色数?分辨率、颜色数与显存的关系? 分辨率M ?N 、颜色个数K 与显存大小V 的关系: 例:分辨率为1024像素/行?768行/ 帧,每像素24位(bit )颜色(224种颜色)的显示器,所需的显存为:1024?768?24位(bit )=1024?768?24/8=2359296字节(byte )。或:每像素16777216种颜色(24位真彩色),1024?768的分辨率,所需显存为:1024?768?log 216777216位显存=2359296字节显存。 9. 什么是图元的生成?分别列举两种直线和圆扫描转换算法。 10. OpenGL 由核心库GL(Graphics Library)和实用函数库GLU(Graphics Library Utilities)两个库组成。 11. 区域填充算法要求区域是连通的,因为只有在连通区域中,才可能将种子点的颜色扩展到区域内的其它点。 区域可分为 向连通区域和 向连通区域。区域填充算法有 填充算法和 填充算法。 12. 字符生成有哪两种方式? 点阵式(bitmap fonts 点阵字——raster 光栅方法):采用逐位映射的方式得到字符的点阵和编码——字模位点阵。 笔画式(outline fonts 笔画字——stroke 方法):将字符笔画分解为线段,以线段端点坐标为字符字模的编码。 13. 图形信息包含图形的 和 。 14. 什么是图形变换?图形变换只改变图形的 不改变图形的 。图形变换包括 和 ( )。 15. 熟练掌握二维图形的齐次坐标表示、平移、比例、旋转、对称变换以及复合变换的方法和原则。 16. 图形的几何变换包括 、 、 、 、 ;图形连续作一次以上的几何变换称 变换。 17. 试写出图示多边形绕点A(xo,yo)旋转的变换矩阵。要求写出求解过程及结果。 18. 试写出针对固定参考点、任意方向的比例变换矩阵。 19. 试写出对任意直线y=mx+b 的对称变换矩阵。 20. 什么是窗口?什么是视区?什么是观察变换? 21. 简述二维观察变换的流程。 22. 试述窗口到视区的变换步骤,并推出变换矩阵。 ??—(位) —K N M V 2log ??≥

计算机图形学

《计算机图形学》 实 验 报 告 姓名:邬维 学号: 20107989 班级:计算机科学与技术一班 指导老师:廖宁 成绩: 完成时间:2012-12-26

实验一 实验名称:Visual C++图形程序 一.实验目的 Visual C++是在Microsoft C 的基础上发展而来的,随着计算机软、硬件技术的快速发展,如今Visual C++已成为集编辑、编译、运行、调试于一体功能强大的集成编程环境。本章以Visual C++ 6.0 为对象,主要介绍V isual C++集成编成环境的使用、图形设备接口和常用图形程序设计、鼠标编程以及菜单设计等基础,目的是通过对Visual C++的学习,掌握V isual C++图形程序设计的方法,为计算机图形学原理部分的算法实现提供程序工具和方法。 二.实验环境 XP系统,Visual C++ 6.0。 三.实验内容 1.学习V isual C++图形程序设计的方法; 2.掌握V isual C++集成编成环境的使用、图形设备接口和常用图形程序设计、鼠标编程、橡皮筋交互技术、画刷与画笔以及菜单设计等; 3.利用CDC类已有的画笔划线等函数绘制一张笑脸,要求有眼睛鼻子和嘴巴,笑脸处于屏幕的中央,并加入文字。 四.实验步骤 1.先建立一个CDC工程。 2.在CCDCview找到OnDraw()函数编写一下代码: void CAAA View::OnDraw(CDC* pDC) { CAAADoc* pDoc = GetDocument(); ASSERT_V ALID(pDoc); // TODO: add draw code for native data here CPen mypen,*oldpen; mypen.CreatePen(PS_SOLID,2,RGB(0,0,0)); oldpen=pDC->SelectObject(&mypen); pDC->Ellipse(275,170,425,320); pDC->Arc(360,215,410,240,410,255,360,225); pDC->Arc(290,215,340,240,340,255,290,225); pDC->Arc(320,240,380,300,320,270,380,270); pDC->SelectObject(oldpen); pDC->TextOut(300,350,"开开心心每一天!"); pDC->MoveTo(350,240); pDC->LineTo(350,270); 3.编译、调试和运行程序,查看程序结果。

计算机图形学作业题

1、已知一直线段起点(0,0),终点(8,6),利用Bresenham算法生成此直线段,写出 生成过程中坐标点及决策变量d的变化情况,并在二维坐标系中,标出直线上各点。 2、试用中点画圆算法原理推导第一象限中y=0到x=y半径为R的圆弧段的扫描转换算法。(要求写清原理、误差函数和递推公式,并进行优化) 3、如下图所示多边形,若采用扫描线算法进行填充,试写出该多边形的ET表和当扫描线Y=3时的有效边表(AET表)。 4、试按左下右上顺序用四向算法,分析当S1为种子时,下图区域的填充过程。 5、将下图中的多边形ABCD先关于点C(3,4)整体放大2倍,再绕点D(5,3)顺时针旋转90 ,试推导其变换矩阵、计算变换后的图形各顶点的坐标,并画出变换后的图形。

6、已知三角形ABC 各顶点的坐标A(3,2)、B(5,5)、C(4,5),相对直线P 1P 2(线段的坐标分别为:P 1 (-3,-2) 、P 2 (8,3) )做对称变换后到达A ’、B ’、C ’。 试计算A ’、B ’、C ’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵,列出计算式子,不要求计算结果) 7、试作出下图中三维形体ABCDE 的三视图。要求写清变换过程,并画出生成的三视图。 x 8、试采用Sutherland –Cohen 裁剪算法,叙述裁剪如下图所示的直线AB 和CD 的步骤: ① 写出端点A 、B 、C 、D 的编码; ② 写出裁剪原理和直线AB 、CD 的裁剪过程。 A B C D 9 、用梁友栋算法裁减如下图线段AB ,A 、B 点的坐标分别为(3,3)、(-2,-1) 裁剪窗口为wxl=0,wxr=2,wyb=0,wyt=2。

计算机图形学

a.扫描线算法:目标:利用相邻像素之间的连贯性,提高算法效率。处理对象:简单多边形,非自交多边形(边与边之间除了顶点外无其它交点)。扫描线:平行于坐标轴的直线,一般取平行于X轴。区间:扫描线与边的交点间的线段。基本原理:将整个绘图窗口内扫描多边形的问题分解到一条条扫描线,只要完成每条扫描线的绘制就实现了多边形的扫描转换;一条扫描线与多边形的边有偶数个交点,每2个点形成一区间。步骤:(对于每一条扫描线)(1)计算扫描线与边的交点(2)交点按x坐标从小到大排序(3)交点两两配对,填充区间。算法:1、建立ET;2、将扫描线纵坐标y的初值置为ET中非空元素的最小序号,如图中,y=1;3、置AEL为空;4、执行下列步骤直至ET和AEL都为空.4.1、如ET中的第y类非空,则将其中的所有边取出并插入AEL 中;4.2、如果有新边插入AEL,则对AEL中各边排序;4.3、对AEL中的边两两配对,(1和2为一对,3和4为一对,…),将每对边中x坐标按规则取整,获得有效的填充区段,再填充.4.4、将当前扫描线纵坐标 y 值递值1;4.5、将AEL中满足y = ymax边删去(因为每条边被看作下闭上开的);4.6、对AEL中剩下的每一条边的x 递增deltax,即x = x+deltax. b.走样与反走样:走样:用离散量(像素)表示连续的量(图形)而引起的失真,称为走样,或称为混淆。光栅图形的走样现象:阶梯(锯齿)状边界、图形细节失真、狭小图形遗失:动画序列中时隐时现,产生闪烁。反走样:在图形显示过程中,用于减少或消除走样(混淆)现象的方法。方法:提高分辨率方法{方法简单,但代价非常大,显示器的水平、竖直分辩率各提高一倍,则显示器的点距减少一倍,帧缓存容量则增加到原来的4倍,而扫描转换同样大小的图元却要花4倍时间}、非加权区域采样{扫描转换线段的两点假设:像素是数学上抽象的点,它的面积为0,它的亮度由覆盖该点的图形的亮度所决定;直线段是数学上抽象直线段,它的宽度为0。而现实:像素的面积不为0;直线段的宽度至少为1个像素;假设与现实的矛盾是导致走样出现的原因之一。解决方法:改变直线段模型,线上像素灰度不等。方法步骤:1、将直线段看作具有一定宽度的狭长矩形;2、当直线段与某像素有交时,求出两者相交区域的面积;3、根据相交区域的面积,确定该像素的亮度值}、加权区域采样{权函数w(x, y),以像素A的中心为原点建立二维坐标系,w(x, y)反应了微面积元dA对整个像素亮度的贡献大小,与 dA 到像素中心距离d 成反比。实现步骤:1.求直线段与像素的相交区域2.计算的值3.上面所得到的值介于0、1之间,用它乘像素的最大灰度值,即设该像素的显示灰度。问题:计算量大。 c.为什么需要齐次坐标? 1、对多个点计算多次不同的变换时,分别利用矩阵计算各变换导致计算量大2、运算表示形式不统一:平移为“+”、旋转和放缩为“·”3、统一运算形式后,可以先合成变换运算的矩阵,再作用于图形对象。 d.Sutherland-Hodgman算法:S-H算法基本思想(亦称逐边裁剪算法):将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪。步骤:1、多边形由一系列顶点表示:V1V2…Vn2、按一定(左上右下)的次序依次裁剪; 与左边所在直线裁剪

计算机图形学课设(含所有程序图文)

计算机图形学课程设计报告 系(院):计算机科学学院 专业班级:信计11102 姓名:吴家兴 学号:201106262 指导教师:严圣华 设计时间:2014.6.16 - 2014.6.26 设计地点:10教机房

(此处目录根据自己情况可以调整改动) 一、课程设计目的 ................................................. 错误!未定义书签。 二、课程设计具体要求..................................... 错误!未定义书签。 三、需求分析与总体设计 ..................................... 错误!未定义书签。 四、详细设计与实现[含关键代码和实现界面] ... 错误!未定义书签。 五、小结......................................................................................... 错误!未定义书签。 一、课程设计目的 计算机图形学课程设计是验证、巩固和补充课堂讲授的理论知识的必要环节,通过上机实验,培养学生的自学能力、动手能力、综合运用知识解决实际问题的能力。要求学生运用计算机图形学理论与技术设计、编写、调试程序并撰写课程设计报告。 二、课程设计具体要求 1.独立完成设计并撰写课程设计报告。 2.在规定时间将程序和设计报告用附件(信计111X班XXX 图形学课设报告.RAR)发送到274548837@https://www.360docs.net/doc/406455400.html,,并上交纸质打印稿(A4纸10页左右)。 3. 课程设计报告内容包括: (1)列出设计者姓名及本人详细信息、所用开发工具; (2)程序的基本功能介绍; (3)程序实现步骤和关键算法的理论介绍; (4)关键源代码实现说明。(不要打印全部源程序!) (5)程序运行界面截图(3幅左右) (6)课设总结和自我评价。 4.《计算机图形学》课程的知识结构体系: (1)课设为期两周:总学时为40学时,2学分 (2)学生必须完成二维线画图元和二维填充图元两个大功能。二维裁剪和二维图形变换至少实现两个内容。总共不少于10个算法。 (3)程序应做到:通用性、交互性、界面友好性!

16秋西交《计算机图形学》在线作业

奥鹏17春16秋西交《计算机图形学》在线作业 一、单选(共30 道,共60 分。) 1. 在三维造型中,不可以使用垂直扫掠造型方法构造的有( )。 A. 园柱 B. 长方体 C. 三棱锥 D. 正十二面体 标准解: 2. 在直线段的参数方程表示方法中,参数t的取值范围为( )。 A. 【0,1】 B. 【0,∞】 C. 【-1,1】 D. 【-1,0】 标准解: 3. 如果希望在CorelDRAW中创建的多个页面具有相同的图形元素,可以执行下面的哪一项操作( ) A. 先创建多个页面,然后分别在各个页面中绘制相同的图形元素 B. 创建一个页面并在此页面绘制需要的图形元素,然后再将此页面复制多个 C. 选择“Layout-Page Setup”命令,在弹出的对话框中进行设置 D. 在Master Page中创建一个图层,在此图层中绘制希望出现在各个页面中的图形元素,则此各个页面将具有相同的图形元素 标准解: 4. 下列有关平面几何投影的叙述,错误的是( )。 A. 透视投影又可分为一点透视、二点透视、三点透视 B. 斜投影又可分为等轴测、斜二测 C. 正轴测又可分为等轴测、正二测、正三测 D. 正视图又可分为主视图、侧视图、俯视图 标准解: 5. 要快速以递增的方式增大字体大小,可以利用“文本”工具选择特定的字符后,执行以下哪步操作( ) A. 按CTRL + "+"键 B. 双击“缩放”工具 C. 按CTRL + 数字小键盘上的"8" D. 按CTRL + 数字小键盘上的"2" 标准解: 6. 有M个控制顶点Pi(i=1,…k)所决定的n次B样曲线,由()段n次B样曲线段光滑连接而成。

《计算机图形学》2020年秋季学期在线作业(二)

《计算机图形学》2020年秋季学期在线作业(二)下列算法用于裁剪二维线段的有()。 A:字符裁剪 B:中点分割裁剪法 C:逐边裁剪 D:双边裁剪法 答案:B 多边形填充时,下述论述错误的是()。 A:多边形被两条扫描线分割成许多梯形,梯形的底边在扫描线上,腰在多边形的边上,并且相间排列 B:多边形与某扫描线相交得到偶数个交点,这些交点间构成的线 段分别在多边形内、外,并且相间排列 C:在判断点是否在多边形内时,一般通过在多边形外找一点,然 后根据该线段与多边形的交点数目为偶数即可认为在多边形内部,若 为奇数则在多边形外部,而且不需考虑任何特殊情况 D:边的连贯性告诉我们,多边形的某条边与当前扫描线相交时, 很可能与下一条扫描线相交 答案:C

在光亮度插值算法中,下列论述错误是()。 A:Gouraud明暗模型计算中,多边形与扫描平面相交区段上每一采样点的光亮度值是由扫描平面与多边形边界交点的光亮度插值得到的 B:Phong明暗处理模型中,采用了双线性插值和构造法向量函数的方法模拟高光 C:Gouraud明暗模型和Phong明暗处理模型主要是为了处理由多个平面片近似表示曲面物体的绘制问题 D:Phong明暗模型处理的物体表面光亮度呈现不连续跃变 答案:A 下列有关平面几何投影的叙述语句中,正确的论述为()。 A:在平面几何投影中,若投影中心移到距离投影面无穷远处,则成为平行投影 B:透视投影与平行投影相比,视觉效果更有真实感,而且能真实地反应物体的精确的尺寸和形状 C:透视投影变换中,一组平行线投影在投影面上一定产生灭点 D:在三维空间中的物体进行透视投影变换,可能产生三个或者更多的主灭点 答案:A

计算机图形学

1、名词解释:直接设备、间接设备、绝对坐标设备、相对坐标设备、离散设备、连续设备、 回显、约束、网格、引力域、橡皮筋技术、草拟技术、拖动、旋转、形变。 1)直接设备:直接设备指诸如触摸屏一类用户可直接用手指指点屏幕进行操作从而实 现定位的设备。 2)间接设备:指诸如鼠标、操纵杆等用户通过移动屏幕上的光标实现定位的设备。 3)绝对坐标设备:绝对坐标设备包括数字化仪和触摸屏,它们都有绝对原点,定位坐标 相对原点来确定。绝对坐标设备可以改成相对坐标设备,如数字化仪,只要记录当前点位置与前一点位置的坐标差(增量),并将前一点看成是坐标原点,则数字化仪的定位范围也可变成无限大。 4)相对坐标设备:相对坐标设备可指定的范围可以任意大,然而只有绝对坐标设备才能 作为数字化绘图设备。 5)离散设备:键控光标则为离散设备。使用离散设备也难以实现精确定位。 6)连续设备:把手的连续运动变成光标的连续移动,鼠标、操纵杆、数字化仪等均为此 类设备。连续设备比离散设备更自然、更快、更容易用,且在不同方向上运动的自由度比离散设备大。使用离散设备也难以实现精确定位。 7)回显:回显作为一种最直接的辅助方式,大部分交互式绘图过程都要求回显。比如 在定位时,用户不仅要求所选的位置可在屏幕上显示出来,还希望其数据参数也在屏幕上显示,这样可以获得精确位置来调整定位坐标。在选择、拾取等过程中,用户也都希望能够直观地看到选择或拾取的对象以便确认。 8)约束:约束是在图形绘制过程中对图形的方向、对齐方式等进行规定和校准。约束 方式有多种,最常用的约束是水平或垂直直线约束,使用户可以轻松地绘制水平和垂直线而不必担心线的末端坐标的精度范围。另外,其他类型的约束技术用于产生

计算机图形学作业

1?什么是图形?在计算机中,图形是如何表示的?计算机图形学的主要研究内容是什么? 答:从广义上说,能够在人的视觉系统中形成的视觉印象的客观对象都称为图形。在计算机图形学中,图形是对客观对象的一种抽象表示,它带有形状和颜色信息。在计算机中,图形通过用点陈法和参数法来表示图形。计算机图形学的主要研究内容是图形的输入,图形的处理,图形的生成和输出。 2?试举例说明计算机图形学的应用。 答:图形用户界面,计算机辅助设计,科学计算可视化,科技、教育、商业领域中的交互式绘图,计算机艺术,地理信息系统,计算机动画、广告及娱乐,多媒体系统,虚拟现实系统。 3.试列举出你所知道的图形输入与输出设备。 答:图形输入设备:鼠标,图形输入板,跟踪球,光笔,触摸屏,操纵杆,空间球,数据手套。 图形输出设备:阴极射线管显示器,液晶显示器,等离子显示器,绘图仪。 4.你用过哪些图形软件包?把它们列举出来。 答:OpenGL DirectX。 5.阴极射线管有哪几个部分组成?它们的功能分别是什么? 答:阴极射线管有五部分组成:电子枪,聚焦系统,加速电极,偏转系统,荧光屏。 电子枪的功能:电流通过灯丝产生热量,对阴极加热使其发出电子束,控制电子束的强弱和数量。 聚焦系统的功能:聚焦系统通过电场或磁场控制电子束,使电子束“变细”,保证轰击荧光屏时产生的亮点足够小,提高显示系统的分辨率。 加速电极的功能:加速电极加有正的高电压,使经过聚焦的电子束高速运动。 偏转系统的功能:控制电子束的水平方向上和竖直方向上的偏转。 荧光屏的功能:显示图形。 6.什么叫刷新?刷新频率与荧光物质的持续发光时间的关系如何? 答:在画线显示器中,电子束在荧光屏上产生的亮点只能持续极短的时间,为了产生静态的不闪烁的图形,电子束必须周期性地反复扫描所要绘制的图形,这种扫描

计算机图形学在实际中的应用

计算机图形学在实际中的应用 1963年,伊凡?苏泽兰在麻省理工学院发表了名为《画板》的博士论文,它标志着计算机图形学的正式诞生。至今已有四十多年的历史。此前的计算机主要是符号处理系统,自从有了计算机图形学,计算机可以部分地表现人的右脑功能了,所以计算机图形学的建立具有重要的意义。现在计算机图形学有了长足的发展。 对于我们目前来说,计算机图形学能让我们感受到的主要在游戏和电影上的应用。比如《魔兽世界》、《使命召唤》等各类大型3D游戏,以及《阿凡达》等3D电影。我们享受着计算机图形学快速发展带来的各种便利中。 在电脑游戏中,计算机图形学的首要任务就是实现电脑游戏中的虚拟场景,这主要通过在计算机中重现真实世界场景来实现。游戏编程的主要任务是要模拟真实物体的物理属性,即物体的形状,光学性质,表面的纹理和粗糙程度,以及物体间的相对位置、遮挡关系等等。其中,光照和表面属性是最难模拟的。为了模拟光照,已有各种各样的光照模型。从简单到复杂排列分别是:简单光照模型、局部光照模型和整体光照模型。从绘制方法上看有模拟光的实际传播过程的光线跟踪法,也有模拟能量交换的辐射度方法。除了在计算机中实现逼真物理模型外,电脑游戏中图形学应用的另一个研究重点是加速算法,力求能在最短时间内绘制出最真实的场景,提高游戏的流畅度。 计算机图形学不仅在我们的娱乐中给我们带来越来越逼真的体验。没有计算机图形学的快速发展,iphone、android等智能手机将不能给我们带来现在这样好的体验。其实计算机图形学的在我们生活中的应用领域非常的广。 计算机图形学还应用在科学计算可视化方面。在数值仿真、气象卫星、石油勘探、遥感卫星、医学影像、蛋白质分子结构等都会产生大量的数据,即使是专业人员也们很难从一大堆枯燥乏味的数字中迅速发现其内在规律和变化趋势。计算机图形学帮助科技人员更直观形象地理解大规模数据所蕴涵的科学现象和规律。比如我现在正在学习的数字信号处理这门课程,全部都是对数据的分析处理,如果没有MatLab这个计算软件的话,学习将比现在还痛苦。而Matlab就是计算机图形学在科技计算方面的一个软件。它的全称叫做MA Trix LABoratory,将成为21世纪的语言。 现在在电子设计方面,国内外基本上全部转移到计算机上来。各种电路仿真软件,电路设计软件,极大的方便了硬件的设计。EDA技术的快速发展,也是由于计算机图形学的快速发展而产生的。也是计算机图形学的一个应用领域:计算机辅助设计和计算机辅助制造。 在工程和产品设计中,计算机可以帮助设计人员担负计算、信息存储和制图等项工作。在设计中通常要用计算机对不同方案进行大量的计算、分析和比较,以决定最优方案;各种设计信息,不论是数字的、文字的或图形的,都能存放在计算机的内存或外存里,并能快速地检索;设计人员通常用草图开始设计,将草图变为工作图的繁重工作可以交给计算机完成;利用计算机可以进行与图形的编辑、放大、缩小、平移和旋转等有关的图形数据加工工作。 在计算机辅助制造这一应用中,对于机械制造业,利用电子数字计算机通过各种数值控制机床和设备,自动完成离散产品的加工、装配、检测和包装等制造过程,极大的减轻人

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. 打印机

相关文档
最新文档