直线生成算法 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
大广赛湖南赛区获奖名单第六届12-19
少年朗诵稿02-17
NB-LOT基础试题03-28
上呼吸道感染儿科_首次病程记录(140715,1)109-05
思想汇报2017年4月02-24
小学关爱留守儿童帮扶工作计划方案12-10
2019九九重阳节敬老作文06-13
南京军区司令部03-08
高中有机化学基础知识总结03-24
- 二年级下册音乐测试题
- 浙江财经大学中微题库答案
- 小升初常考古诗填空练习(80首古诗 含答案)
- 全国导基 第十章 中国旅游诗词、楹联、游记鉴赏 练习题 及答案
- 华师大版七年级科学(生物)下册5.1《种群和群落》导学案(含答
- 人教版七年级语文上册练习:《我的老师》课时训练(附答案)-精
- NOIP2015浙江省复赛普及组成绩
- 长虹公司的应收账款管理
- 快递行业同业竞争对手调查报告
- “十三五”重点项目-牦牛骨髓粉项目节能评估报告(节能专篇)
- 钢结构生产制造部各岗位职责及任职要求
- 对H企业应收账款管理与核算现状的调查报告
- 中国化学会第24届全国高中学生化学竞赛(省级赛区)试题、标准答
- 本科成本会计
- “众包”创新模式在我国潜在的风险的探讨
- 语文基础全套复习资料(有他足够了
- 中外合作出版合同(1)
- STM32-GPIO及EXTI初始化详解
- 2018年中国控制技术市场现状调研与发展前景分析报告目录
- 大学物理试题第四章 冲量和动量
- 算法
- 点画
- 直线
- Bresenham
- 生成
- DDA
- 美术教师读书心得体会
- 三聚氰胺的结构制备及其应用综述
- 四套材料力学试题及答案
- 南网V2.0 10kV电缆线路总论
- 《毛泽东思想和中国特色社会主义理论体系概论》课程标准
- 爱国卫生月活动计划与爱国寻宝团日活动策划书汇编
- 支撑架计算 - 图文
- 点点轻博客的优劣势总结及一些建议
- 防误闭锁装置管理规定2013N
- 天津外国语学院2004-2005学年表彰名单
- “李宁”广告心理学分析
- 实验三、 半波振子天线仿真设计
- 中国古代玉器图集
- 公司法网上形考答案
- 2008-2011年党建工作述职报告
- 某厂综合楼建筑工程毕业设计(单位工程施工组织设计)
- 《全国信访来访接待工作应用规范(试行)》
- 奥迪发动机系统重点摘录
- 商法试题 精编
- 小河学校标准化学校建设汇报材料