直线生成算法 DDA画线算法、中点画线算法、Bresenham画线算法
更新时间:2023-10-31 15:43:01 阅读量: 综合文库 文档下载
- 直线生成算法实验报告推荐度:
- 相关推荐
实验一、直线生成算法
DDA画线算法
一 .名称:DDA画线算法; 二 . 算法分析:
1.设直线两端点为:P1(x1,y1)及 P0(x0,y0),
k??yy1?y0??xx1?x02.则直线斜率 3.则直线方程为
yi?kxi?B4.当 k<1 , x每增加1,y 最多增加1(或增加小于1)。
yi?1?kxi?1?B?k?xi??x??B?kxi?B?k?x yi?1?yi?k?xlet?x?1yi?1?yi?k yi
5.当 k>1 ,y每增加1,x 最多增加1 (或增加小于1) 。
?k?1?
yi+1 xi xi+1 yByB?yxi?1?i?1??i??kkkkklet?y?1xi?1?xi?1k
?k?1?三.算法实现:
void CHuayahuaView::OnDda() //DDA画直线 {
ReleaseDC(pdc1);
// TODO: Add your command handler code here CDC* pdc1 = GetDC(); int color = RGB(255,0,0); int x1=10,y1=20,x2=200,y2=200; double k=(y2-y1)*1.0/(x2-x1);//k<1; double y=y1;
for(int i=x1;i<=x2;i++) { }
pdc1->SetPixel(i,(int)(y+0.5),color); y=y+k;
}四:程序截图:
中点画线算法
一. 实验名称:中点画线算法 二. 算法分析:
直线方程: F(x,y)=ax+by+c=0 y 直线将二维空间划分为三个区域: 如F(x,y)=0, 则(x,y) 在直线上 如F(x,y)<0, 则(x,y)在直线下方 如F(x,y)>0, 则(x,y)在直线上方 条件: a= -(y1-y0)
b=(x1-x0) c= -B(x1-x0) 三. 代码实现:
void CHuayahuaView::MidPointLine() {
// TODO: Add your command handler code here CDC* pdc1 = GetDC(); int color = RGB(255,0,0);
int x1=30,y1=50,x2=200,y2=100;//斜率; int x,y,a,b,d,d0,d1,d2; a=y2-y1; b=x2-x1; d=2*a+b; d1=2*a; d2=2*(a+b); x=x1,y=y1;
pdc1->SetPixel(x,(int)(y+0.5),color);
(x0,y0) F(x,y)>0 F(x,y)=0 F(x,y)<0 x (x1,y1) }
while(x < x2) { }
if(d>0) { } else { }
pdc1->SetPixel(x,(int)(y+0.5),color);
x++; d+=d1; x++; y++; d+=d2;
ReleaseDC(pdc1);
四. 程序截图:
Bresenham画线算法
一. 算法名称:Bresenham画线算法 二. 算法分析:
定义决策变量 d = d+k (0
则点,为: (x+1,y) (d<0.5) 或(x+1,y+1)(d>=0.5) 当d>1时, 让以证0<=d<1d0=0定义决策变量 d = d+k (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, (重新初始化误差项)
三.算法实现:
void CHuayahuaView::Breshnham() { }
四:程序运行截图:
// TODO: Add your command handler code here CDC* pdc2 = GetDC(); int color = RGB(255,0,0); int x1=50,y1=50,x2=200,y2=150; int x,y,dx,dy,e;
dx=x2-x1;dy=y2-y1;e=-dx; x=x1; y=y1;
for(int i=0;i<=dx;i++) { }
ReleaseDC(pdc2);
pdc2->SetPixel(x,(int)(y+0.5),color); x++; e=e+2*dy; if(e>=0) { }
y++; e=e-2*dx;
正在阅读:
直线生成算法 DDA画线算法、中点画线算法、Bresenham画线算法10-31
111猴车各种管理制度07-02
综合管廊支架预埋件施工方案 - 图文01-30
一个有趣的实验作文500字06-26
信息技术教师个人学期工作总结报告范文02-26
盐城市住房公积金查询02-21
现代汉语2名词解释12-21
2016年日历(含2016年农历,2016年周历,2016年节气)06-02
戒网瘾之六招教你准确揣摩他人心理05-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 点画
- 直线
- Bresenham
- 生成
- DDA
- 美术教师读书心得体会
- 三聚氰胺的结构制备及其应用综述
- 四套材料力学试题及答案
- 南网V2.0 10kV电缆线路总论
- 《毛泽东思想和中国特色社会主义理论体系概论》课程标准
- 爱国卫生月活动计划与爱国寻宝团日活动策划书汇编
- 支撑架计算 - 图文
- 点点轻博客的优劣势总结及一些建议
- 防误闭锁装置管理规定2013N
- 天津外国语学院2004-2005学年表彰名单
- “李宁”广告心理学分析
- 实验三、 半波振子天线仿真设计
- 中国古代玉器图集
- 公司法网上形考答案
- 2008-2011年党建工作述职报告
- 某厂综合楼建筑工程毕业设计(单位工程施工组织设计)
- 《全国信访来访接待工作应用规范(试行)》
- 奥迪发动机系统重点摘录
- 商法试题 精编
- 小河学校标准化学校建设汇报材料