计算机图形学复习提纲.docx

上传人:b****8 文档编号:28295997 上传时间:2023-07-10 格式:DOCX 页数:16 大小:957.43KB
下载 相关 举报
计算机图形学复习提纲.docx_第1页
第1页 / 共16页
计算机图形学复习提纲.docx_第2页
第2页 / 共16页
计算机图形学复习提纲.docx_第3页
第3页 / 共16页
计算机图形学复习提纲.docx_第4页
第4页 / 共16页
计算机图形学复习提纲.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机图形学复习提纲.docx

《计算机图形学复习提纲.docx》由会员分享,可在线阅读,更多相关《计算机图形学复习提纲.docx(16页珍藏版)》请在冰豆网上搜索。

计算机图形学复习提纲.docx

计算机图形学复习提纲

计算机图形学复习提纲

题型:

填空10题:

共20分

选择10题:

共20分

简答2题:

共14分

计算3题:

共30分

编程2题:

共16分

考点概括:

第一章计算机图形学基础知识

计算机图形学中,生成图形的方式有两种:

互动式绘图和被动式绘图;

图形系统的结构:

图形系统的基本功能:

计算存储输入输出交互5个功能;

计算机图形系统的分类:

脱机绘图系统联机绘图系统交互式绘图系统;

CRT显示器根据其电子束轰击屏幕的方式和组成结构可分为三种类型:

随机扫描式显示器存储管式显示器光栅扫描式显示器;

一般分辨率在1024*1024像素以上的话,显示的颜色数目在256中以上;

光栅扫描式显示器的组成显示存储器图形生成器彩色表CRT控制器CRT监视器;

计算机输入设备图:

课后的三道计算题(必考一题):

彩色表的地址数目是有像素值的位长决定的,

彩色表也叫调色板(调色表设真彩色为32位)这样就可以决定系统颜色的总数;

第二章C语言图形程序设计基础

初始化要调用initgraph()函数

格式为voidfarinitgraph(int*gdriver,int*gmode,char*path);Detectgraph()函数

格式为voidfardetectgraph(int*gdriver,int*gmode);

Closegraph()函数

Moveto()函数;moverel函数;lineto()函数;linerel()函数;

画一个“王”字的程序;

#include"graphics.h"

#include"conio.h"

voidmain()

{intgdriver=DETECT,gmode;

自动搜索显示器类型和显示

intx,y;

initgraph(&gdriver,&gmode,"D:

\\TC");

cleardevice();/*清除图形屏幕

moveto(100,40);

linerel(40,0);/*从当前坐标以相对增量方式画直线

x=getx();//linerel是相对移动的意思

y=gety();//取得光标(x,y)现在的位置

moveto(x,y+20);

linerel(-40,0);

moverel(0,20);

linerel(40,0);

moverel(-20,0);

linerel(0,-40);

getch();//等待按一键结束

closegraph();

}

Sprintf()函数:

第三章基本图形的生成与计算

*直线的生成算法:

数值微分法(DDA法)、中点画线算法和Bresenham算法。

前面通用的程序:

#include"graphics.h"

#include"stdio.h"

#include"conio.h"

main()

{

intr,color;

intgdriver=DETECT,gmode;

intMidPointCircle(intr,intcolor);

printf("pleaseinputthenumbleofr=");

scanf("%d",&r);

printf("pleaseinputthenumbleofcolor=");

scanf("%d",&color);

initgraph(&gdriver,&gmode,"D:

\\TC");

MidPointCircle(r,color);

getch();

closegraph();

}

*DDA法:

DDA画线算法参考程序

dda_line(x1,y1,x2,y2,c)

intx1,y1,x2,y2,c;

{

floatdelta_x,delta_y,x,y;

intdx,dy,steps,k;

dx=x2-x1;

dy=y2-y1;

if(abs(dx)>abs(dy))steps=abs(dx);

elsesteps=abs(dy);

delta_x=(float)dx/(float)steps;

delta_y=(float)dy/(float)steps;

x=x1;

y=y1;

for(k=1;k<=steps;k++)

{

putpixel((int)(x+0.5),(int)(y+0.5),c);

x+=delta_x;

y+=delta_y;

}

}

中点画线算法:

#include"graphics.h"

main()

{intMidpoint_Line();

intgdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“D:

\\TC”);

Midpoint_Line(10,10,500,300,4);

getch();

closegraph();}

voidMidpointLine(intx0,inty0,intx1,int

y1,intcolor)

{inta,b,d1,d2,d,x,y;

a=y0-y1;b=x1-x0;

d=2*a+b;d1=2*a;d2=2*(a+b);

x=x0;y=y0;

putpixel(x,y,color);

while(x

 {if(d<0)  

{x++;y++;d+=d2;}

   else     

{x++;d+=d1;}

   putpixel(x,y,color);

 }/*while*/

}/*midPointLine*/

Bresenham画线法:

用Bresenham方法扫描转换连接从点P0(0,0)到Pi(ix100,100)(i=1,2,3,4,5)的直线段。

#include"graphics.h"

#include"stdio.h"

#include"conio.h"

main()

{intBresenham_line();

intgdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,"D:

\\TC");

Bresenham_line(0,0,100,100,4);

Bresenham_line(0,0,200,100,4);

Bresenham_line(0,0,300,100,4);

Bresenham_line(0,0,400,100,4);

Bresenham_line(0,0,500,100,4);

getch();

closegraph();

}

Bresenham_line(intx0,inty0,intx1,inty1,

intcolor)

{intx,i,y;

floatdx,dy,k,k1,e;

dx=x1-x0;

dy=y1-y0;

k=dy/dx;

k1=1/k;

e=-0.5;

x=x0;

y=y0;

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

{putpixel(x,y,color);

y=y+1;

e=e+k1;

if(e>=0.5)e=e-1;

   if(e>=0)x++;

}

中点画圆法:

#include"graphics.h"

#include"stdio.h"

#include"conio.h"

main()

{

intr,color;

intgdriver=DETECT,gmode;

intMidPointCircle(intr,intcolor);

printf("pleaseinputthenumbleofr=");

scanf("%d",&r);

printf("pleaseinputthenumbleofcolor=");

scanf("%d",&color);

initgraph(&gdriver,&gmode,"D:

\\TC");

MidPointCircle(r,color);

getch();

closegraph();

}

MidPointCircle(intr,intcolor)

{

intx,y;

floatd;

x=0;y=r;d=1.25-r;

putpixel(x,y,color);

while(x<=y)

{

if(d<0)

{d+=2*x+3;

x++;}

else

{d+=2*(x-y)+5;

x++;

y--;}

putpixel(x,y,color);

}/*while*/

}

1.程序题时,要点:

d0=1.25-r

d<0时,d+=2*x+3;

d>=0时,d+=2*(x-y)+5;

2.做填空是,直接算就是了!

(二)区域填充算法包括:

多边形区域的填充,边填充算法,种子填充算法。

1.多边形区域的填充(四个步骤:

求交排序配对填色)考点:

边表,活动边表。

活动边表的步骤:

 

种子填充算法:

考算法步骤和出栈顺序。

(1)种子象素入栈

(2)当堆栈非空时重复执行如下步骤

1.栈顶象素出栈

2.将该象素设置成填充色

3.按左、上、右、下顺序检查与出栈象素相邻的四个象素,将其中不是边界且未置成填充色的象素压入堆栈。

见下图:

线刷子:

当直线斜率在[-1,1]之间时,线刷子置成垂直方向,正上方和正下方置成直线颜色;当斜率在之外时,则将线刷子置成水平方向,正左方和正右方置成直线颜色。

*要能计算点阵式字符点阵需要的字节数。

矢量式字符:

autoCAD系统的行的定义如下:

标题行中,形编号是1到255的整数值;字节数表示形定义描述行中包括结束符0在内的字节数目;形名称用大写字母才可以被调用,否则只作为形的一种解释性信息,不存入存储器,因而不占用存储空间。

 2.描述行由若干个用逗号隔开的字节组成,并以0作为形定义的结束字符。

带有前缀0的字节是十六进制,无前缀0的字节是十进制。

 3.描述行中的每个字节包含矢量长度和方向两种信息。

目前常用的反走样方法主要有:

提高分辨率、简单区域采样和加权区域采样。

中点分割裁剪(不知道怎么考?

多边形裁剪方法有很多,通常有逐边裁剪法、双边裁剪法和分区编码裁剪法等

第四章曲线与曲面的生成与计算

Bezier曲线的参数方程和性质:

DeCAsteljian算法在4p70

二次B样条曲线段的表达式

两曲面拼接

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1