- 写在开头:
相关实验是学校开设课程的相关实验,本人所作较为粗浅,若有同校师弟浏览,望看懂借鉴而非照搬全抄。
- 实验目的:
理解Bresenham画线算法
- 实验内容:
用Bresenham画线算法实现水平、垂直、斜率大于1、斜率小于1、斜率为正、斜率为负等各种情况(不能直接调用OpenGL画线函数)。
- 实现效果及步骤(或流程)
实现效果:
绘制了一个大小为40 × 40 网格图(坐标为0~39),用以模拟屏幕像素。以(20,20)为中心,绘制了六条“直线”。这些“直线”模拟了当屏幕像素点被放大至肉眼可见时,Bresenham算法绘制直线时的绘制情况。
实现流程:
首先判断斜率是否小于1,如果是则计算p值(p=2dy –dx),而后选择起点并绘制起点;接着判断斜率正负,如果为正,则x递增1,通过p值判断y值,并且计算相应的p值,否则x递减1。
如果斜率大于1,则将求p值公式x、y互换,并且将x递增或递减的变化过程改为y递增或递减。
具体流程见下图。
- 创新设计和实现方法
创新设计:
使用正方形块模拟屏幕像素点,绘