收藏 分销(赏)

计算机图形学--直线段生成绘制的实现算法.doc

上传人:仙人****88 文档编号:12024361 上传时间:2025-08-29 格式:DOC 页数:4 大小:60.50KB 下载积分:10 金币
下载 相关 举报
计算机图形学--直线段生成绘制的实现算法.doc_第1页
第1页 / 共4页
计算机图形学--直线段生成绘制的实现算法.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
实验二 直线段生成绘制的实现算法 班级 08信计二 学号 20080502075 姓名 石志涛 分数 一、实验目的和要求: 1、掌握光栅图形显示基本原理。 2、熟悉直线的生成算法,掌握直线的绘制。 3、掌握几种常用的直线生成算法。 4、利用Visual C++ 实现直线生成的DDA算法、Bresenham算法。 二、实验内容: 1、了解直线的生成原理,掌握几种基本的直线生成算法。 2、编程实现DDA算法、Bresenham算法绘制直线段。 3、分析对比两种算法的像素逼近效果和程序执行速度。 4、输出要求:每种算法要分别在八个二分之一象限内画一条直线段。 三、实验步骤: 1、预习教材关于直线的生成原理。 2、仿照教材关于直线生成的DDA算法和Bresenham算法,使用Visual C++ 实现该算法。 3、运行结果的调试。 程序代码 1.DDA算法: #include<graphics.h> #include<conio.h> void linedda(int x0,int y0,int x1,int y1,int color) { int x,dy,dx, y; float m; dx=x1-x0; dy=y1-y0; m=dy/dx; y=y0; for(x=x0;x<=x1;x++) { putpixel(x,(int)(y+0.5),color); y+=m; } } main() { int a,b,c,d,e; int graphdriver=DETECT; int graphmode=0; initgraph(&graphdriver,&graphmode," "); cleardevice(); a=0; b=0; c=200; d=300; e=RGB(0,255,0); linedda(a,b,c,d,e); getch(); closegraph(); } 运行结果: 2.Bresenham算法: #include <graphics.h> #include <conio.h> void Line_Bresenham(int x1, int y1, int x2, int y2, int color) { int x = x1; int y = y1; int dx = abs(x2 - x1); int dy = abs(y2 - y1); int s1 = x2 > x1 ? 1 : -1; int s2 = y2 > y1 ? 1 : -1; bool interchange = false; if (dy > dx) { int temp = dx; dx = dy; dy = temp; interchange = true; } int p = 2 * dy - dx; for(int i = 0; i < dx; i++) { putpixel(x, y, color); if (p >= 0) { if (!interchange) y += s2; else x += s1; p -= 2 * dx; } if (!interchange) x += s1; else y += s2; p += 2 * dy; } } void main() { initgraph(640, 480); Line_Bresenham(100, 1, 1, 478, GREEN); Line_Bresenham(1, 478, 638, 1, GREEN); getch(); closegraph(); } 运行结果: 四、实验结果分析: 1、DDA算法采用的是直线的点斜式计算公式 2、Bresenham算法是通过选择与理想直线最近的像素来完成扫描转换的。 通过该课程的学习使我熟练的掌握了利用计算机画直线的方法,在老师的教导下掌握了许多的计算机图形学知识,为以后利用计算机画图形打下了基础。 4
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服