云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 计算机图形学总复习答案

计算机图形学总复习答案

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 18:29:48

?4 ??7?7 ???1137

4??1??010??83???661????100??261?????9?11???1????50?1?1?1??1??11、第7章习题1

12、写出有关消隐的Z缓冲区算法的伪代码并指出该算法的关键点。

答:

for (每一个多边形) {

扫描转换该多边形; // 即确定其投影到哪些像素 for (多边形所覆盖的每个像素(x,y)) {

计算该多边形在该像素的深度值 z(x,y); if(z(x,y) >ZB(x,y)) {

用z (x,y) 替换ZB(x,y)的值;

用多边形在 (x,y) 处的颜色值替换FB(x,y)的值; } } }

z缓冲区算法的关键是要尽快判断出哪些点落在一个多边形内,并尽快完成多边形中各点深度值(z值)的计算。针对图形表面的不同类型,可以有多种计算方法。利用多边形内的点在水平和垂直方向上的连贯性,可以得到多边形的点及其深度值的算法。

13、四连通区域种子填充算法如下:

17

请根据上述算法说明其基本思想。

答:基本思想是:从多边形内部任一点(像素)出发,依“上、下、左、右”顺序判断相邻像素,若其不是边界像素且没有被填充过,对其填充,并重复上述过程,直到所有像素填充完毕。 14、给定四点P0(0,0,0),P1(1,1,1),P2(2,-1,-1),P3(3,0,0),用其做为特征多边形来构造一条三次Bezier曲线,并计算参数t为0、1/3、1/2、2/3、1的P(t)值。其中Bezier曲线的定义式P(t)为:

其中,B i, n ( t ) 称为伯恩斯坦 (Bernstein) 基函数,它的多项式表示为:

答:做题思路:

根据Bezier曲线的定义式得到三次Bezier曲线参数式为: P(t)=(1-t)p0+3t(1-t)P1+3t(1-t)P2+tP3

3

2

2

3

= P0+3(P1-P0)t +3(P0-2P1+P2)t+(-P0+3P1-3P2+P3)t

写成分量形式:

X(t)= X0+3(X1-X0)t +3(X0-2X1+X2)t+(-X0+3X1-3X2+X3)t

18

2

3

23

Y(t)= Y0+3(Y1-Y0)t +3(Y0-2Y1+Y2)t+(-Y0+3Y1-3Y2+Y3)t

Z(t)= Z0+3(Z1-Z0)t +3(Z0-2Z1+Z2)t+(-Z0+3Z1-3Z2+Z3)t

将P(0,0,0),P(1,1,1),P(2,-1,-1),P(3,0,0)各点坐标代入得:

0

1

2

3

2

3

23

X(t)=3t Y(t)=3t-9t+6t Z(t)= 3t-9t+6t

将t分别等于0,1/3, 2/3,1代入上述参数曲线,得 P(0)=(0,0,0) P(1/3)=(1,2/9,2/9) P(1/2)=(3/2,0,0) P(2/3)=(2,-2/9,-2/9) P(1)=(3,0,0)

2

3

2

3

15、请写出Bresenham生成圆弧的程序

答:Bresenham生成圆弧的程序如下

void Bresenham_Circle (int R,int color) {

int x,y,d; x=0;y=R; d=3-2*R; while(x

Circle_Points (x,y,color); if(d<0)

d+=4*x+6; else {

d+=4*(x-y)+10; y-=1; } x++; }

if(x==y) Circle_Points (x,y,color); }

void Circle_Points(int x,int y, int color) {

Putpixel (x, y, color); Putpixel (x, -y, color);

19

Putpixel (-x, y, color); Putpixel (-x, -y, color); Putpixel (y, x, color); Putpixel (y, -x, color); Putpixel (-y, x, color); Putpixel (-y, -x, color); }

16请写出中点画圆的程序

答:中点画圆的程序如下

void midpointcircle(int r,int color) {

int x,y; float d;

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

Circle_Points(x,y,color); while(x<=y) {

if(d<0)

d=d+2*x+3; else {

d=d+2(x-y)+5; y--; } x++;

Circle_Points(x,y,color); } }

void Circle_Points(int x,int y, int color) {

Putpixel (x, y, color); Putpixel (x, -y, color); Putpixel (-x, y, color); Putpixel (-x, -y, color); Putpixel (y, x, color); Putpixel (y, -x, color); Putpixel (-y, x, color); Putpixel (-y, -x, color); }

20

搜索更多关于: 计算机图形学总复习答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

?4 ??7?7 ???1137 4??1??010??83???661????100??261?????9?11???1????50?1?1?1??1??11、第7章习题1 12、写出有关消隐的Z缓冲区算法的伪代码并指出该算法的关键点。 答: for (每一个多边形) { 扫描转换该多边形; // 即确定其投影到哪些像素 for (多边形所覆盖的每个像素(x,y)) { 计算该多边形在该像素的深度值 z(x,y); if(z(x,y) >ZB(x,y)) { 用z (x,y) 替换ZB(x,y)的值;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com