zoukankan      html  css  js  c++  java
  • 通过Bresenham算法实现完成矢量线性多边形向栅格数据的转化

    1、实验目的与要求

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

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

    2、实验方法

          采用Bresenham算法实现

    3、实验材料

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

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

    4、实验结果

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

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

    5、程序源代码

     1 //采用Bresenham算法实现完成矢量线性多边形向栅格数据的转化过程
     2 
     3 #include<stdio.h>
     4 //Bresenham函数
     5 //其中(x0,y0)是起点,(x1,y1)是终点,k是斜率,pixel是网格分辨率
     6 void Bresenham(int x0,int y0,int x1,int y1,float k,float pixel)
     7 {
     8     int x,y;
     9     float e;
    10     e=-0.5;
    11     x=x0;
    12     y=y0;
    13     for(x=x0;x<=(x1/pixel);x++)
    14     {
    15         e=e+k;
    16         if(e>0)
    17         {
    18             y++;
    19             e=e-1;
    20         }
    21         
    22         printf("x=%d y=%d",x,y);
    23         printf("
    ");        
    24     }
    25 }
    26 
    27 void main()
    28 {
    29 //调用Bresenham函数
    30  Bresenham(0,0,12,4,1.0/3.0,0.2);
    31 
    32 }

    六、运行结果

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

                                                                                                                                                                     石头 

                                                                                                                                                                     2014年11月27日

    宣言:在此记录自己学习过程中的心得体会,同时积累经验,不断提高自己! 文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。 欢迎大家留言交流。转载请注明出处。
  • 相关阅读:
    js去重的es6做法和es5做法
    对npm的认识
    pandas_分类与聚合
    pandas_使用透视表与交叉表查看业绩汇总数据
    pandas_使用属性接口实现高级功能
    pandas_一维数组与常用操作
    pandas_DateFrame的创建
    python 连接 mysql 的三种驱动
    Django学习路6_修改数据库为 mysql ,创建mysql及进行迁徙
    Django学习路5_更新和删除数据库表中元素
  • 原文地址:https://www.cnblogs.com/vegetable/p/4126731.html
Copyright © 2011-2022 走看看