华中科技大学计算机图形学作业及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一次

1.计算机图形学的研究内容是什么?

计算机图形学的发展和应用;计算机图形设备和系统;国际标准化组织(ISO) 发布的图形标准;人机交互接口技术;基本图形实体、自由曲线和自由曲面的生成算法;图形变换和裁剪;曲面和实体造型算法;颜色、光照模型及真实感图形显示技术与算法等内容。结合讲课的内容需要经过一定量的编程实践才能掌握,加深理解。通过本课程的学习,要求学生了解计算机图形学的基本概念和方法,以及计算机处理图形的全过程,并能利用综合图形环境开发计算机辅助设计应用软件

2.试阐述图形、图像的本质要素。

图像可以看作是由许许多多个点组成的,这是计算机表示图像的基本思想。即在计算机中,通过取样把图像进行分割,分成一个个的点,并给每一个点赋予一个颜色值。在图像处理中,我们把这些点称为像素。因此,数字图像是离散的。

计算机图形又称矢量图形,是由数学方法描述的。无论放大到多大,其输出质量都非常好。我们可对矢量图形进行位置、尺寸、形状、颜色的改变,图形仍能保持清晰、平滑,丝毫不会影响其最终的印刷质量。

3.计算机图形学的相关学科有哪些?它们之间的相互关系如何?

与计算机图形学密切相关学科有图像处理和模式识别。它们研究的都是与图形图象处理有关的数据模型、图象再现的内容,它们相互融合、相互渗透。

4.什么是像素点?

1、计算机图形的种类从本质上讲,主要有两种计算机图形:一种为位图图像,即是把图像分割成若干个小方格,每个小方格称为一个像素点,由这些像素点排列组成的栅格,.被称为“光栅”,计算机通过表示这些像素点的位置、颜色、亮度等信息,从而表示出整幅图像。

2、数字图像将图像分割成非常细小的点,称为像素点,像素点的值表示该点图像的亮度.但是,近年来的研究指出,利用光合(A)与蒸腾(E)之比获得的水分利用效率(WUE=AE),通常称为瞬时水分利用效率(WUEi),与δ13C不呈现显著的正相关关系。

3、像素点是显示器显示画面的最小发光单位,由红、绿、蓝三个像素单元组成,在彩色显像管中,电子枪通常有三支排列成三角形的单色电子枪组成,称为△(delta)配置,而显示器的荧光层也采用三位一体的荧光体,即含有红色、绿色、蓝色荧光体,它们的排列方式和电子枪的排列方式相同,这三种基色通过不同的亮度组合即可产生各种颜色。

5.光栅扫描技术的原理是什么?解释光栅扫描图形显示器不可能在任意两个像素点之间画出一条精确直线段的原因。

(1)具有四场扫描的影像测量原理(透射法)

(2)有准单场扫描的影像测量原理(反射法)

(3)单场扫描的干涉测量原理

光栅显示器上不可能在任意两个点间画出一条精确直线段的原因是:象素坐标只能取整数值。

6.你用过或知道哪些图形应用软件?

Macromedia Fireworks 8.0

用C语言编写程序:

物体A在(20,10)位置,当A沿40°方向匀速运动(速度为5m/秒),求经过1分钟后A所在位置。要求输入起始坐标(20,10),通过程序计算出1分钟后的坐标,并输出到屏幕(如果会进行图形程序设计,以图形方式描绘出运动轨迹

#include

main()

{

int x,y, a;

ta=DETECT;

initgraph(&ta,&tb,"c:\\tc")

for (a=0,a<61,a++)

{ x-=20+5*cos(40)

y-=10+5*sin(40)

putpixel(x,y,7);

delay(1000);

putpixel(x,y,0);

}

if(bioskey(1)!=0)

break;

closegraph();

}

1.使用正负法生成图形的条件,哪些规则曲线可以用正负法?

正负法是一种逐点生成曲线的方法。当已知曲线的方程(隐函数方程、极坐标方程、参数方程等)时,用正负法绘制曲线是很方便的。对于多值曲线,多解曲线,也非常实用。利用正负法生成曲线的同时,还可以计算曲线的近似长度及其包围区域的面积。

2.隐函数F( x, y)=0,将平面域分成哪几部分?

因为f(x,y)=x^2+y^2-1 ,则分成二部分,f(x,y)=x^2-y^2-1,则分成3部分。

3.编写一为适合任意角度直线段的DDA算法通用程序。

隐函数F( x, y)=0,将平面分为三个区域,即F(x,y)<0,则点(x,y)在圆内;F(x,y)>0,则点(x,y)在圆外;F(x,y)=0,则点(x,y)在圆上;

#include

#include

#include

#include

void initgraphics(void);

void main( )

{

int XS,YS,XE,YE,dx,dy,d,x,y;

int s1,s2,temp,interchange,i;

printf(''''''''''''''''Please input the coordinate of the start point:\n''''''''''''''''); printf(''''''''''''''''SX:''''''''''''''''); scanf('''''''''''''''' %d'''''''''''''''',&XS);

printf(''''''''''''''''SY:''''''''''''''''); scanf('''''''''''''''' %d'''''''''''''''',&YS);

printf(''''''''''''''''Please input the coordinate of the end point:\n''''''''''''''''); printf(''''''''''''''''EX:''''''''''''''''); scanf('''''''''''''''' %d'''''''''''''''',&XE);

printf(''''''''''''''''EY:''''''''''''''''); scanf('''''''''''''''' %d'''''''''''''''',&YE); initgraphics();

DDAline(XS,YS,XE,YE);

getch();

closegraph();}

void initgraphics(void)

{

相关文档
最新文档