1、实验目的与要求

目的:通过本次实验,完成矢量线性多边形向栅格数据的转化过程;

要求:采用VC++6.0实现。

2、实验方法

采用Bresenham算法实现

3、实验材料

直线的定义:y = x/3, 起点为(0, 0),终点为(12, 4);

网格坐标要求:网格分辨率为0.2,网格起点同直角坐标系原点相同

4、实验结果

程序运行的结果,要依次输出栅格单元的栅格坐标

注意事项:本实验中,栅格的分辨率同实际坐标不等,注意格子单位的输出过程以及矢量坐标向格子坐标的转化。

5、程序源代码

 //采用Bresenham算法实现完成矢量线性多边形向栅格数据的转化过程

 #include<stdio.h>
//Bresenham函数
//其中(x0,y0)是起点,(x1,y1)是终点,k是斜率,pixel是网格分辨率
void Bresenham(int x0,int y0,int x1,int y1,float k,float pixel)
{
int x,y;
float e;
e=-0.5;
x=x0;
y=y0;
for(x=x0;x<=(x1/pixel);x++)
{
e=e+k;
if(e>)
{
y++;
e=e-;
} printf("x=%d y=%d",x,y);
printf("\n");
}
} void main()
{
//调用Bresenham函数
Bresenham(,,,,1.0/3.0,0.2); }

六、运行结果

特别注意:float k=1/3,这时的k是0,涉及到一个类型转换问题。必须使用float k=1.0/3.0,这里的k才是0.33333...。

石头

2014年11月27日

通过Bresenham算法实现完成矢量线性多边形向栅格数据的转化的更多相关文章

  1. 《图形学》实验七:中点Bresenham算法画椭圆

    开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画椭圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 50 ...

  2. 《图形学》实验六:中点Bresenham算法画圆

    开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 500 ...

  3. 《图形学》实验五:改进的Bresenham算法画直线

    开发环境: VC++6.0,OpenGL 实验内容: 使用改进的Bresenham算法画直线. 实验结果: 代码: //中点Bresenham算法生成直线 #include <gl/glut.h ...

  4. 《图形学》实验四:中点Bresenham算法画直线

    开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画直线. 实验结果: 代码: //中点Bresenham算法生成直线 #include <gl/glut.h& ...

  5. 利用canvas实现的中点Bresenham算法

    Bresenham提出的直线生成算法的基本原理是,每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别,具体的实现过程大家可以去问度娘.我主要是利用canvas画布技术实现了这个 ...

  6. Bresenham算法画填充圆及SDL代码实现

    画圆是计算机图形操作中一个非常重要的需求.普通的画圆算法需要大量的浮点数参与运算,而众所周知,浮点数的运算速度远低于整形数.而最终屏幕上影射的像素的坐标均为整形,不可能是连续的线,所以浮点数运算其实纯 ...

  7. 基于Bresenham算法画圆

    bresenham算法画圆思想与上篇 bresenham算法画线段 思想是一致的 画圆x^2+y^2=R^2 将他分为8个部分,如上图 1. 只要画出1中1/8圆的圆周,剩下的就可以通过对称关系画出这 ...

  8. bresenham算法的FPGA的实现2

    在上一篇里http://www.cnblogs.com/sepeng/p/4045593.html <bresenham算法的FPGA的实现1>已经做了一个整体框架的布局,但是那个程序只是 ...

  9. bresenham算法的FPGA的实现1

    接着上一篇的 计算实现给出屏幕上任意两个点,求出这两个点之间直线上的所有的点.http://www.cnblogs.com/sepeng/p/4042464.html 这种直接算法的确是被鄙视了 强大 ...

随机推荐

  1. HDU 4861 Couple doubi (数论 or 打表找规律)

    Couple doubi 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/D Description DouBiXp has a ...

  2. JSF 2 textbox example

    In JSF, you can use the <h:inputText /> tag to render a HTML input of type="text", t ...

  3. 删除MySQL重复数据

    删除MySQL重复数据 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据.因为在采集中,对于同一台设备,同一个时间点应该只有一个数据,然 ...

  4. thymeleaf比较符号问题

    比较器与平等: 值表达可以是>.<.> =.< =符号,像往常一样,也是= =和!=操作符可以用来检查平等,但是>.<.> =.< =不能用,要用gt ...

  5. javascript中字符串的trim功能表达式

    string.replace(/(^\s*)|(\s*$)/g, "") 用来删除行首行尾的空白字符(包括空格.制表符.换页符等等)

  6. bat定时执行,清除PHP缓存

    bat中需要设置一个等待时间,执行完一条命令后,等待30分钟后在执行第二条命令,请问怎么做?急急急----谢谢大家 @echo off& echo wscript.sleep wscript. ...

  7. poj3041

    Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12162   Accepted: 6620 Descri ...

  8. SuperSlidev2.1 轮播图片和无缝滚动

    使用方法,狠狠的点击下面链接 http://down.admin5.com/demo/code_pop/18/562/index.html 简单使用方法如下 html <div class=&q ...

  9. sqlserver表分区与调优与行列转换

    转自: http://www.cnblogs.com/knowledgesea/p/3696912.html http://www.open-open.com/lib/view/open1418462 ...

  10. jquery 绑定省份和城市

    前台代码: <asp:DropDownList runat="server" ID="ddlProvince"></asp:DropDownL ...