- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 基本光栅图形基础
第三章 基本光栅图形基础*****;本章内容;直线段的扫描转换算法;
直线是点的集合,在几何学中直线被定义为两个点之间的最短距离。也就是说一条直线是指所有在它上面的点的集合。直线是一维的,即它们具有长度但没有面积。直线可以向一个方向及其相反的方向无限伸长,这不是计算机图形学中所需要的,在图形学中研究的对象是直线段。已知线段的起点坐标(x1,y1),终点坐标(x2,y2),这两点就确定了一条线段。
一般来讲,任何图形输出设备都能准确地画出水平线X和垂直线Y,或对角线,但要画出一条准确斜线不是件容易的事。在光栅系统中,线段通过象素绘制,水平和垂直方向的台阶大小受象素的间隔限制。这就是说,必须在离散位置上对线段取样,并且在每个取样位置上决定距线段最近的象素,画一条直线实际上就计算出来一系列及该线靠近的象素。;;数值微分法(DDA);数值微分(DDA)法;数值微分(DDA)法;;数值微分(DDA)法;数值微分(DDA)法;数值微分(DDA)法;数值微分(DDA)法;Bresenham画线算法;Bresenham画线算法;Bresenham画线算法; 程序如下: BresenhamLine(x0,y0,x1,y1,color)
int x0,y0,x1,y1,color;
{
int x,y,dx,dy;
float k,e; dx = x1-x0;
dy = y1-y0;
k = dy/dx;
e = -0.5; x=x0; y=y0;
for( i=0; i=dx; i++)
{
drawpixel(x,y,color);
x++;
e=e+k;
if(e = 0)
y++;
e = e - 1;
}
}
;将e乘以2?x记为E﹦2?xe,则E同e有相同的符号,取代e判断E的符号确定象素点的过程仍然正确。此时上述算法中各误差项的表示式做如下变动:
初始误??项: E0﹦2?xe0
﹦-?x;
积累误差 ek+1﹦ek﹢m修改为:
Ek+1﹦2?xek+1
﹦2?x(ek﹢?y/?x)
﹦2?xek﹢2?y
﹦Ek﹢2?y;
如果选取上面的象素点,积累误差还要减去1,修改为: Ek+1﹦2?x(ek+1﹣1)
﹦E k+1﹣2?x ; 程序如下: BresenhamLine(x0,y0,x1,y1,color)
int x0,y0,x1,y1,color;
{
文档评论(0)