计算机图形学实验一:画直线.docx

计算机图形学实验一:画直线.docx

ID:59786981

大小:82.25 KB

页数:8页

时间:2020-11-24

计算机图形学实验一:画直线.docx_第1页
计算机图形学实验一:画直线.docx_第2页
计算机图形学实验一:画直线.docx_第3页
计算机图形学实验一:画直线.docx_第4页
计算机图形学实验一:画直线.docx_第5页
资源描述:

《计算机图形学实验一:画直线.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、贵州大学实验报告学院:计算机科学与技术专业:计算机科学与技术班级:计科131姓名学号实验组实验时间指导教师黄初华成绩实验项目名称直线生成实验目的实验目的通过本实验,使学生了解并掌握在光栅显示系统中直线的生成和显示算法,熟悉相关开发平台。为后继实验打下基础。实验要求实验组织运行要求以学生自主训练为主的开放模式组织教学。实验原理xPi=(xi,yi)MQP1p2y中点画线法算法原理:设0

2、0,Y0),(X1,Y1),直线将二维空间划分为三个区域:直线方程:F(x,y)=ax+by+c=0其中:a=-(y1-y0),b=(x1-x0),c=-B(x1-x0)如F(x,y)=0,则(x,y)在直线上如F(x,y)<0,则(x,y)在直线下方如F(x,y)>0,则(x,y)在直线上方yxF(x,y)=0F(x,y)>0F(x,y)<0(x1,y1)(x0,y0)因此,可将中点M的坐标(Xp+1,Yp+0.5)代入直线方程,并判断其符号即可确定象素点的选取。定义决策变量:d=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+c如果d

3、>0,则M在理想直线上方,选正右方P2点;如果d<0,则M在理想直线下方,选右上方P1点;如果d=0,则M在理想直线上,选P1/P2点。由于d是xi和yi的线性函数,可采用增量计算提高运算效率。1.如由pi点确定在是正右方P2点(d>0).,则新的中点M仅在x方向加1,新的d值为:dnew=F(xi+2,yi+0.5)=a(xi+2)+b(yi+0.5)+c而dold=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+cdnew=dold+a=dold-dy2.如由pi点确定是右上方P1点(d<0),则新的中点M在x和y方向都增加1,新的d

4、值为dnew=F(xi+2,yi+1.5)=a(xi+2)+b(yi+1.5)+c而dold=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+cdnew=dold+a+b=dold-dy+dx在每一步中,根据前一次第二迭中计算出的d值的符号,在正右方和右上方的两个点中进行选择。d的初始值:d0=F(x0+1,y0+0.5)=F(x0,y0)+a+b/2=a+b/2=-dy+dx/2F(x0,y0)=0,(x0,y0)在直线上。为了消除d的分数,重新定义F(x,y)=2(ax+by+c)则每一步需要计算的dnew是简单的整数加法dy=y1-

5、y0,dx=x1-x0d0=-2dy+dxdnew=dold-2*dy,当dold>=0dnew=dold-2(dy-dx),当dold<0Bresenham画线算法算法原理:与DDA算法相似,Bresenham画线算法也要在每列象素中找到与理想直线最逼近的象素点。根据直线的斜率来确定变量在x或y方向递增一个单位。另一个方向y或x的增量为0或1,它取决于实际直线与最接近网格点位置的距离。这一距离称为误差。算法的巧妙构思,使每次只需检查误差项(增量)的符号即可。定义决策变量:d=d+k(0

6、1,y)(d<0.5)或(x+1,y+1)(d>=0.5)当d>1时,让d=d-1,以保证0<=d<1,d0=0令e=d-0.5(0=0)当e>0时,让e=e-1,(重新初始化误差项)由于算法只用到误差项的符号,为了改用整数以避免除法,可以作如下替换:e=2*e*dx定义决策变量e=2*e*dx,则e0=-dx,e=e+2*dy则下一点为:(x+1,y),(e<0)(x+1,y+1)(e>=0)当e>0时,让e=e-dx,(重新初始化误差项)实验环境实验条件硬件平台:

7、PC软件(推荐):Windows平台,Visualstdio2013,OpenGL实验步骤实验步骤1.掌握算法原理;2.依据算法,编写源程序并进行调试;3.对运行结果进行保存与分析;1.把源程序以文件的形式提交;2.按格式书写实验报告实验内容#include"stdafx.h"#include#include#include#includeusingnamespacestd;voidinit(){glClearColor(1.0,1.0,1.0,1.0);glMatrixMode(GL_P

8、ROJECTION);glLoadIdentity();gluOr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。