计算机图形学直线DDA算法和Bresenham算法精选

实 验 报 告

课程名称: 计算机图形学

院系名称:

专业班级:

学生姓名:

学 号:

指导教师: 张玉娟

黑龙江工程学院教务处制

实验项目直线的生成实验日期2012.3.6实验地点实验楼601同组人数1实验类型□ 传统实验 现代实验 验证性 □ 综合性 □ 设计性 □ 其 他 自立式合作式研究式一、实验目的

1、熟练掌握DDA、中点直线生成算法、Bresenham直线生成算法;

2、能用DDA、中点直线生成算法、Bresenham直线生成算法绘制任意起始点直终止点的直线段。

二、实验仪器设备

计算机、C#三原理、及数值微分法(DDA), 依据直线的微分方程依次确定描述直线的各个像素点。

2、中点直线生成算法:

3、Bresenham画线算法

基本思想:根据直线的斜率确定选择X或者Y方向作为计长方向, 在此方向上每次递增一个单位步长(或者一个像素单位), 另一个方

②实验内容:

1、分别对DDA、中点直线生成算法、Bresenham直线生成算法生成子程序

2、在主事件过程中给出实参,对三个子程序分别调用,完成任意起始点直终止点的直线段的绘制;

③实验步骤:

1、在C#环境下,设计界面,添加4个文本框,三个命令按钮;

2、在代码编写窗口,编写DDA、中点直线生成算法、Bresenham直线生成算法子程序,子程序名分别设为DDALine,MidPointLine和BresenhamLine;

3、在三个命令按钮单击事件中分别根据文本框中给定的待绘制直线段起始点和终止点坐标调用相应的直线段生成子程序,Form中完成任意起始点直终止点的直线段的绘制;

④代码与运行结果;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

namespace WindowsFormsApplication_李¤?熙?

{

public partial class Form1 : Form

{

Bitmap bmp;

public Form1()

{

InitializeComponent();

}

public void midpointline(int x0, int y0, int x1, int y1, Bitmap bmp)

{

int a, b, delta1, delta2, d, x, y;

a = y0 - y1;

b = x1 - x0;

d = 2 * a + b;

delta1 = 2 * a;

delta2 = 2 * (a + b);

x = x0;

y = y0;

bmp.SetPixel(x, y, Color.Black);

while (x < x1)

{

if (d < 0)

{

x++;

y++;

d += delta2;

}

else

{

x++;

d += delta1;

}

{

bmp.SetPixel(x, y, Color.Black);

计算机图形学 dda,计算机图形学直线DDA算法和Bresenham算法精选.doc相关推荐

  1. 游戏中DDA算法和Bresenham算法的应用

    在角色扮演或即时战略游戏中,经常会将角色以最佳的方式走到指定地点.游戏场景的地面情况复杂,而且场面大,若采用盲目式搜索,例如盲目穷举法,则几乎要遍历整个场景,效率非常低,造成角色反应速度过慢,实践证明 ...

  2. matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现

    Prim算法和Kruskal算法的Matlab实现 <计算机仿真>期末大作业 Prim算法和Kruskal算法的Matlab实现 05605刘禹050697(30) 连线问题应用举例: 欲 ...

  3. 【Java数据结构与算法】第十九章 贪心算法、Prim算法和Kruskal算法

    第十九章 贪心算法.Prim算法和Kruskal算法 文章目录 第十九章 贪心算法.Prim算法和Kruskal算法 一.贪心算法 1.介绍 2.支付问题 二.Prim算法 1.最小生成树 2.介绍 ...

  4. 数据结构与算法之美笔记——基础篇(下):图、字符串匹配算法(BF 算法和 RK 算法、BM 算法和 KMP 算法 、Trie 树和 AC 自动机)

    图 如何存储微博.微信等社交网络中的好友关系?图.实际上,涉及图的算法有很多,也非常复杂,比如图的搜索.最短路径.最小生成树.二分图等等.我们今天聚焦在图存储这一方面,后面会分好几节来依次讲解图相关的 ...

  5. dijkstra算法和A*算法

    转自: https://www.cnblogs.com/21207-iHome/p/6048969.html#undefined Dijkstra算法 迪杰斯特拉(Dijkstra)算法是典型的最短路 ...

  6. MD5算法和SHA-1算法

    目录 一.MD5算法  1.MD5算法是什么?  2.MD5算法的优点  3.MD5算法的不足  4.MD5加密的应用场景  5.MD5算法的代码 二.SHA-1算法  1.SHA-1算法和MD5算法 ...

  7. Prime算法和Krustal算法(转自博客园华山大师兄)

     Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex ( ...

  8. lru调度算法例题_FIFO调度算法和LRU算法

    微信公众号关注我,更多计算机知识告诉你! 一.理论 FIFO:先进先出调度算法 LRU:最近最久未使用调度算法 两者都是缓存调度算法,经常用作内存的页面置换算法. 打一个比方,帮助你理解.你有很多的书 ...

  9. 最小生成树-Prim算法和Kruskal算法

    转载自:https://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html Prim算法 1.概览 普里姆算法(Prim算法),图论 ...

  10. smoteenn算法_基于EasyEnsemble算法和SMOTE算法的不均衡数据分类方法与流程

    本发明涉及不均衡数据二分类技术领域,尤其涉及一种基于EasyEnsemble算法和SMOTE算法的不均衡数据二分类方法. 背景技术: 数据不均衡指的是在一个样本数据集中,某一类的样本数远少于其他类的样 ...

最新文章

  1. 一、Axis2 WebService开发准备工作
  2. bootstrap-datetimepicker时间控件添加清除按钮
  3. 亚马逊千人评分4.6分,用小说的方式解锁开发难题!
  4. 多个SSH key对应多个Host: Github, Bitbucket
  5. 软路试--就像一棵树活着
  6. CPU性能监控之一------CPU架构
  7. Express调用mssql驱动公共类dbHelper
  8. [转]【JAVA各版本特性】JAVA 1.0
  9. java 时间 转化成数字_java时间转化数字
  10. linux 网卡无效 设置_Linux系统的双网卡设置
  11. VS2019 windows桌面应用_桌面美化神器RocketDock EX增强版整合超多皮肤/图标哦!
  12. python如何实现输出表格_python如何以表格形式打印输出
  13. r语言调用python_R语言与Python协同工作
  14. oracle中replace怎么用,oraclereplace函数怎么用
  15. 计算机二级河南2020年12月报名时间,2020年3月河南省洛阳市计算机二级报名时间|网上报名入口【12月16日9:00开通】...
  16. 当yum安装包时显示系统空间不足,求指教
  17. iPhone 14分辨率,屏幕尺寸,PPI 详细数据对比 iPhone 14 Plus、iPhone 14 Pro、iPhone 14 Pro Max
  18. 28岁华为员工工资表曝光牛逼的人注定会牛逼你们难道自甘堕落?
  19. 一些DDR4内存的科普
  20. Java读取相片信息

热门文章

  1. 用云计算机,云计算在生活中的应用
  2. CSND自定义模块管理
  3. 网页视频流m3u8/ts视频下载
  4. Oracle GoldenGate 之 Director 监控工具安装和邮箱报警
  5. QLCDNumber 显示样式(例如:电子手表有背景绘图)
  6. 高通android logo,高通平台android kernel 开机logo展示和传统linux一样
  7. 浅析小米登录/注册页面(原生)
  8. 微博开放平台api使用
  9. 出自蚂蚁课堂的简单springboot-demo
  10. 2018年最好用的百度网盘资源搜索神器排行