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日

    宣言:在此记录自己学习过程中的心得体会,同时积累经验,不断提高自己! 文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。 欢迎大家留言交流。转载请注明出处。
  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/vegetable/p/4126731.html
Copyright © 2011-2022 走看看