- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
椭圆扫描转换中点算法
PAGE 40
计算机图形学原理及算法教程 (Visual C++版)
PAGE 41
第1章 STYLEREF 标题 1,章,章名,实例名称 \* MERGEFORMAT 基本图形的生成
第 1
第 1 章
基本图形的生成
计算机图形学已成为计算机技术中发展最快的领域,计算机图形软件也相应得到快速发展。计算机绘图显示有屏幕显示、打印机打印图样和绘图机输出图样等方式,其中用屏幕显示图样是计算机绘图的重要内容。
计算机上常见的显示器为光栅图形显示器,光栅图形显示器可以看作像素的矩阵。像素是组成图形的基本元素,一般称为“点”。通过点亮一些像素,灭掉另一些像素,即在屏幕上产生图形。在光栅显示器上显示任何一种图形必须在显示器的相 应像素点上画上所需颜色,即具有一种或多种颜色的像素集合构成图形。确定最佳 接近图形的像素集合,并用指定属性写像素的过程称为图形的扫描转换或光栅化。 对于一维图形,在不考虑线宽时,用一个像素宽的直、曲线来显示图形。二维图形 的光栅化必须确定区域对应的像素集,并用指定的属性或图案进行显示,即区域 填充。
复杂的图形系统,都是由一些最基本的图形元素组成的。利用计算机编制图形软件时,编制基本图形元素是相当重要的,也是必需的。点是基本图形,本章主要讲述如何在指定的输出设备(如光栅图形显示器)上利用点构造其他基本二维几何图形(如点、直线、圆、椭圆、多边形域及字符串等)的算法与原理,并利用Visual C++编程实现这些算法。
1.1 直 线
数学上,理想的直线是由无数个点构成的集合,没有宽度。计算机绘制直线是在显示器所给定的有限个像素组成的矩阵中,确定最佳逼近该直线的一组像素,并且按扫描线顺序,对这些像素进行写操作,实现显示器绘制直线,即通常所说的直线的扫描转换,或称直线光栅化。
由于一图形中可能包含成千上万条直线,所以要求绘制直线的算法应尽可能地快。本节介绍一个像素宽直线的常用算法:数值微分法(DDA)、中点画线法、Bresenham 算法。
1.1.1 DDA(数值微分)算法
DDA算法原理:图1-1 DDA方法扫描转换连接两点图1-2 中点画线法每步迭代涉及的像素和中点示意图如图1-1所示,已知过端点的直线段;直线斜率为,从的左端点开始,向右端点步进画线,步长=1(个像素),计算相应的坐标;取像素点?[, round(y)]?作为当前点的坐标。计算,当,即当x每递增1,y递增k(即直线斜率)。
图1-1 DDA方法扫描转换连接两点
图1-2 中点画线法每步迭代涉及的像素和中点示意图
注意:上述分析的算法仅适用于k?1的情形。在这种情况下,x每增加1, y最多增加1。当时,必须把x,y地位互换,y每增加1,x相应增加1/k(请参阅后面的Visual C++程序)。
1.1.2 生成直线的中点画线法
中点画线法的基本原理如图1-2所示。在画直线段的过程中,当前像素点为P,下一个像素点有两种选择,点P1或P2。M为P1与P2中点,Q为理想直线与X=Xp+1垂线的交点。当M在Q的下方时,则P2应为下一个像素点;当M在Q的上方时,应取P1为下一点。
中点画线法的实现:令直线段为L[?p0(x0,y0), p1(x1, y1)],其方程式F(x, y)=ax+by+c=0。
其中,a=y0–y1, b=x1–x0, c=x0y1–x1y0;点与L的关系如下。
在直线上,F(x, y)=0;
在直线上方,F(x, y)0;
在直线下方,F(x, y)0。
把M代入F(x, y),判断F的符号,可知Q点在中点M的上方还是下方。为此构造判别式d=F(M)=F(xp+1, yp+0.5)=a(xp+1)+b(yp+0.5)+c。
当d??0,L(Q点)在M上方,取P2为下一个像素。
当d??0,L(Q点)在M下方,取P1为下一个像素。
当d=0,选P1或P2均可,取P1为下一个像素。
其中d是xp, yp的线性函数。
1.1.3 Bresenham算法
Bresenham算法是计算机图形学领域使用最广泛的直线扫描转换算法。由误差项符号决定下一个像素取右边点还是右上方点。
图1-3 第一象限直线光栅化Bresenham算法设直线从起点(x1, y1)到终点(x2, y2)。直线可表示为方程y?=?mx+b,其中b=y1–mx1, m?=?(y2–y1)/(x2–x1)=dy/dx;此处的讨论直线方向限于第一象限,如图1-3所示,当直线光栅化时,x每次都增加1个单元,设x像素为(xi,yi)。下一个像素的列坐标为xi+1,行坐标为yi或者递增1为yi+1,由y与yi及yi+1的距离d1及
图1-3 第一象限直线光栅化Bresenham算法
您可能关注的文档
- 森林对PM25等颗粒物的调控功能与技术-中国科学院生态环境研究中心.PDF
- 森林景观类型间耦合机理分析-西南大学.PDF
- 森林林木和林地所有权使用权证书核发-田阳林业局-国家林业局.DOC
- 森林火灾迹地自然恢复与人工林林分结构及效应研究中国生态系统.PDF
- 森林林木林地湿地野生动植物.DOC
- 森林的分布.PDF
- 森林类型对森林火灾自组织临界性的影响-火灾科学.PDF
- 森林经营对环境影响评价的监定.PDF
- 森林经营单位修筑直接为林业生产服务工程设施占用-滁州林业局.DOC
- 森林经营对群落α多样性影响的定量研究进展-生态学杂志.PDF
- 2025中国企业级AI应用行业研究报告.pdf
- 石林旅游景区文旅项目2024年度活动策划方案.pdf
- 2025年度民主生活会对照检查材料“带头坚决扛起管党治党责任”方面问题起草指南.docx
- 2025年度民主生活会第五方面“在带头坚决扛起管党治党责任方面”对照查摆问题(100名各级班子成员42页).docx
- 2026年公安警示教育大会主持词.docx
- 市委宣传部党组领导班子2025年度民主生活会对照检查材料.docx
- 县自然资源局副局长2025年度民主生活会个人对照检查材料(五个带头).docx
- 县民政局副局长2025年度民主生活会个人对照检查材料(五个带头).docx
- 市教育局领导班子2025年度民主生活会对照检视材料.docx
- 公司党总支书记2025年度抓基层党建工作述职报告.docx
最近下载
- 北京市公安局丰台分局2026年度勤务辅警招聘备考题库及一套答案详解.docx VIP
- 生态修复工程施工方案与技术措施.pdf
- 北京市丰台区2024-2025学年七年级上学期语文期末考试试卷(含答案).docx VIP
- 县级医院2025年服务质量提升工作计划.docx VIP
- 2025年威海市检察机关公开招聘聘用制书记员(31人)考试冲刺题库及答案解析.docx VIP
- 《特种设备安全》课程教学大纲.docx VIP
- 2023年安全生产(消防)管理绩效考核办法.pdf VIP
- 万人计划科技创业领军人才申报书-浙江科技厅.DOC VIP
- 农贸市场运营管理方案投标文件方案.docx VIP
- 2025钢质自由锻件机械加工余量与公差.docx
原创力文档


文档评论(0)