Bresenham算法(一)

Bresenham算法(一)

一、Bresenham直线算法(1)
基本原理
Bresenham的直线算法是一种算法,它确定应该选择的n维光栅的点,以便形成两点之间的直线的近似近似。 它通常用于在位图图像中(例如在计算机屏幕上)绘制线基元,因为它仅使用整数加法,减法和位移,所有这些都是标准计算机体系结构中非常便宜的操作。 它是一种增量错误算法。 它是计算机图形学领域最早开发的算法之一

在这里插入图片描述
考虑d2与d1的关系:

(1)如果d2>=d1,则直线更接近下方点

(2)如果d2<d1,则直线更接近上方点

二、 Bresenham直线算法(2)
过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列象素中与此交点最近的象素。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
算法



void Bresenhamline (int x0,int y0,int x1, int y1,int color)
{  
	int x, y, dx, dy;
	float k, e;
	dx = x1-x0, dy = y1- y0,k=dy/dx; 
	e=-0.5, x=x0, y=y0;
	for (i=0; i£dx; i++)
	{    
		drawpixel (x, y, color);
		x=x+1,e=e+k;
		if (0)
		{ 
			y++, e=e-1;
		}
}
}

 

发布了16 篇原创文章 · 获赞 1 · 访问量 180

猜你喜欢

转载自blog.csdn.net/weixin_44931542/article/details/105133174