计算机图形学 纸质版作业四.doc
文本预览下载声明
基本图元属性
1、直线反走样。如图,将经过直线的像素分为9个子像素,只有2个子像素穿过该直线。已知直线反走样之前该像素的亮度等级为A,则反走样之后亮度等级变为多少?
答:A*2/9
2、使用OpenGL方法如何绘制凹多边形?列出主要思想。试上机验证,写出核心代码。
答:OpenGL绘制函数不能直接绘制出凹多边形凹多边形凹多边形前景(多边形)背景色采用活性边表的多边形转换算法的目的和方法是?
答: 目的提高效率 方法利用边的连贯性和扫描线的连贯性 什么是边的连贯性? 什么是扫描线的连贯性?
答:扫描线的连贯性:每条扫描线的 Y 坐标间距是一样的,即△y=1
边的连贯性: 边的斜率 k 是固定的,使得每条扫描线和边的交点的 x 间距是一样的,即△ x=1/k
6、写出图4-9中扫描线1、2、5的活性边表采用活性边表的多边形扫描转换算法有何缺点?
对表的维持和排序开销很大,适合软件不适合硬件实现。试举出种子填充算法的某个应用实例。四联通区域算法有何局限性?并改写四向算法程序为代码为八向算法程序为代码。
局限性: 有些图形可能填充不满
void boundaryFill4 (int x, int y, int fillColor, int, boarderColor) { int interiorColor;
getpixel (x, y, interiorColor)
if ((interiorColor != boarderColor)
(interiorColor != fillColor)){
setPixel (x,y); // set color of pixel to fillcolor. boundaryFill4 (x+1, y, fillColor, boarderColor);
boundaryFill4 (x+1, y+1, fillColor, boarderColor); boundaryFill4 (x-1, y, fillColor, boarderColor);
boundaryFill4 (x+1, y-1, fillColor, boarderColor); boundaryFill4 (x, y+1, fillColor, boarderColor);
boundaryFill4 (x-1, y+1, fillColor, boarderColor); boundaryFill4 (x, y-1, fillColor, boarderColor);
boundaryFill4 (x-1, y-1, fillColor, boarderColor);
} }
显示全部