直线中点bresenham算法

直线中点bresenham算法

ID:15290751

大小:77.50 KB

页数:3页

时间:2018-08-02

直线中点bresenham算法_第1页
直线中点bresenham算法_第2页
直线中点bresenham算法_第3页
资源描述:

《直线中点bresenham算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一基本图形生成算法实验目的:掌握中点Bresenham绘制直线的原理设计中点Bresenham算法编程实现中点Bresenham算法实验描述:使用中点Bresenham算法绘制斜率为0≤k≤1的直线。算法设计:直线中点Bresenham算法1.输入直线的起点坐标P0(x0,y0)和终点坐标P1(x1,y1)。2.定义直线当前点坐标x,y、定义中点偏差判别式d、定义直线斜率k、定义像素点颜色rgb。3.x=x0,y=y0,计算d=0.5-k,k=(y1-y0)/(x1-x0),rgb=RGB(0,0,255)。4.绘制点(x,y),判断d的符号。若d<0,则(x,y)更新为(x

2、+1,y+1),d更新为d+1-k;否则(x,y)更新为(x+1,y),d更新为d-k。5.如果当前点x小于x1,重复步骤4,否则结束。源程序:1)//TestView.h#include"InputDlg.h"//对话框头文件#defineROUND(a)int(a+0.5)classCTestView:publicCView{…..}2)//TestView.cppvoidCTestView::OnMENUMbline()//菜单函数{InputDlgdlg;if(dlg.DoModal()==IDOK){AfxGetMainWnd()->SetWindowText(":直线

3、中点Bresenham算法");RedrawWindow();Mbline(dlg.m_x0,dlg.m_y0,dlg.m_x1,dlg.m_y1);}}voidCTestView::Mbline(doublex0,doubley0,doublex1,doubley1)//直线中点Bresenham函数{CClientDCdc(this);COLORREFrgb=RGB(255,0,0);//定义直线颜色为红色doublex,y,d,k;x=x0;y=y0;k=(y1-y0)/(x1-x0);d=0.5-k;for(x=x0;x<=x1;x++){dc.SetPixel(ROUN

4、D(x),ROUND(y),rgb);if(d<0){y++;d+=1-k;}elsed-=k;}}运行结果:

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

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

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