logo资料库

合工大图形学实验报告.docx

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
1.实验目的和要求
2.实验环境和工具
3.实验结果
3.1程序流程图
(1)DDA算法
(2)Mid_Bresenham算法
3.2程序代码
1、DDA算法
2、Mid_Bresenham算法
3.3运行结果
(1)DDA算法
(2)Mid_Bresenham算法
3.4运行结果分析
4.思考题
5.实验心得
1.实验目的和要求
2.实验环境和工具
3.实验结果
3.1程序流程图
3.2程序代码
3.3运行结果
3.4运行结果分析
4.实验心得
《计算机图形学》实验报告 实验 2:直线的生成 姓 学 班 名 : 号 : 级 : 实 验 地 点 : 实 验 时 间 :
《计算机图形学》实验报告 1. 实验目的和要求 理 解 直 线 生 成 的 原 理 ; 掌 握 典 型 直 线 生 成 算 法 ; 掌 握 步 处 理 、 分 析 实 验 数 据 的 能 力 ; 编 程 实 现 DDA 算 法 、Bresenham 中 点 算 法 ;对 于 给 定 起 点 和 终 点 的 直 线 , 分 别 调 用 DDA 算 法 和 Bresenham 中 点 算 法 进 行 批 量 绘 制 , 并 记 录 两 种 算 法 的 绘 制 时 间 ; 利 用 excel 等 数 据 分 析 软 件 , 将 试 验 结 果 编 制 成 表 格 , 并 绘 制 折 线 图 比 较 两 种 算 法 的 性 能 。 2. 实验环境和工具 开 发 环 境 : Visual C++ 6.0 实 验 平 台 : Experiment_Frame_One 3. 实验结果 3.1 程 序 流 程 图 (1) DDA 算 法
《计算机图形学》实验报告 (2) Mid_Bresenham 算 法 3.2 程 序 代 码 1、DDA 算 法 int y1) { void CExperiment_Frame_OneView::DDA(int x0, int y0, int x1, //----------请 实 现 DDA 算 法 ------------// int dx,dy,eps1,k;
《计算机图形学》实验报告 float x,y,xIncre,yIncre; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)>abs(dy))//k 小 于 1 { eps1=abs(dx); } else { Yincre=k yincre=1 取 整 } } for(k=0;k<=eps1;k++) { x+=xIncre; y+=yIncre; 2、Mid_Bresenham 算 法 int y0, int x1, int y1) { eps1=abs(dy);//k 大 于 1 } xIncre=(float)dx/(float)eps1;//k 小 于 时 xincre=1 yIncre=(float)dy/(float)eps1;//k 大 于 等 于 时 xincre=1/k DrawPixel(int(x+0.5),(int)(y+0.5));// 四 舍 五 入 int 向 下 void CExperiment_Frame_OneView::Mid_Bresenham(int x0, //-------请 实 现 Mid_Bresenham 算 法 -------// int dx,dy,d,UpIncre,DownIncre,x,y; if(abs(x0-x1)>abs(y0-y1))//k 小 于 1 { if(x0>x1) { x=x1; x1=x0; x0=x; y=y1; y1=y0; y0=y; } x=x0; y=y0; dx=x1-x0;
《计算机图形学》实验报告 dy=y1-y0; d=dx-2*dy; UpIncre=2*dx-2*dy; DownIncre=-2*dy; while(x<=x1) { DrawPixel(x,y); x++; if(d<0) { y++; d+=UpIncre; d+=DownIncre; } else { } if(y0>y1) } } else { { x=x1; x1=x0; x0=x; y=y1; y1=y0; y0=y; } x=x0; y=y0; dx=x1-x0; dy=y1-y0; d=2*dx-dy; UpIncre=2*dx; DownIncre=2*dx-2*dy; while(y<=y1) { DrawPixel(x,y); y++; if(d<0) { d+=UpIncre; } else { d+=DownIncre;
《计算机图形学》实验报告 x++; } } } } 3.3 运 行 结 果 (1) DDA 算 法 (2) Mid_Bresenham 算 法 3.4 运 行 结 果 分 析 DDA 算 法 直 观 ,实 现 简 单 。但 是 涉 及 浮 点 数 运 算 ,不 利 于 硬 件 实 现 。 Mid_Bresenham 算 法 比 DDA 算 法 简 单 。两 种 算 法 实 现 生 成 的 直 线 也 可 能 会 有 不 同 。
《计算机图形学》实验报告 4. 思考题 如 何 测 试 算 法 的 性 能 ? 因 为 绘 制 1 条 直 线 时 间 很 短 , 所 以 需 要 绘 制 大 量 直 线 才 能 比 较 它 们 之 间 的 性 能 。 drawpixel 需 要 耗 费 时 间 , 但 它 的 时 间 性 能 和 直 线 绘 制 算 法 无 关 , 因 此 在 比 较 不 同 算 法 性 能 时 , 应 该 屏 蔽 它 的 影 响 。 即 单 独 计 算 drawpixel 的 次 数 或 时 间 。 一 次 性 绘 制 大 量 直 线 , 并 减 去 drawpixel 所 用 时 间 , 对 算 法 性 能 进 行 对 比 。 5. 实验心得 在 本 次 实 验 中 我 学 习 并 且 掌 握 了 上 述 所 说 的 两 种 直 线 扫 描 算 法 , 同 时 也 知 道 了 两 种 算 法 的 实 现 原 理 以 及 他 们 各 自 的 实 现 过 程 , 并 且 大 致 了 解 了 两 种 扫 描 算 法 的 优 势 与 劣 势 所 在 。
《计算机图形学》实验报告 实验 3:多边形扫描转换算法 姓 学 班 名 : 号 : 级 : 实 验 地 点 : 实 验 时 间 :
分享到:
收藏