本文主要是介绍机器人干涉(碰撞)检测基础——Bresenham 直线算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
Bresenham 直线算法是一种画线算法,用于确定应选择的n维栅格中的点,以形成两点之间直线的近似值。它通常用于在位图图像中(例如在计算机屏幕上)绘制线图元,因为它仅使用整数加法、减法和位移位,所有这些在历史上常见的计算机体系结构中都是非常便宜的操作。它是一种增量误差算法,是计算机图形学领域最早开发的算法之一。称为中点圆算法的原始算法的扩展可用于绘制圆。
虽然像Wu 算法这样的算法因为可以支持抗锯齿而在现代计算机图形学中也经常使用,但 Bresenham 线算法由于其速度和简单性仍然很重要。该算法用于绘图仪等硬件和现代显卡的图形芯片中。在许多软件图形库中也可以找到它。由于该算法非常简单,因此通常在现代显卡的固件或图形硬件中实现。
如今,“Bresenham”标签用于扩展或修改 Bresenham 原始算法的一系列算法。
历史
Bresenham 的直线算法以Jack Elton Bresenham 的名字命名,他于 1962 年在IBM开发了该算法。2001 年布雷森纳姆写道:
我当时在 IBM 圣何塞开发实验室的计算实验室工作。Calcomp 绘图仪已通过 1407 打字机控制台连接到IBM 1401。[该算法] 于 1962 年夏天(可能提前一个月左右)投入生产使用。当时的程序可以在公司之间自由交换,因此 Calcomp(吉姆·纽兰和卡尔文·赫夫特)拥有副本。1962 年秋天,当我回到斯坦福大学时,我在斯坦福大学计算中心图书馆放了一份副本。1963 年在科罗拉多州丹佛市举行的ACM全国大会上接受了对画线例程的描述。这一年没有出版会议记录,只有一期《ACM 通讯》中的演讲者议程和主题。在我发表演讲后,《IBM Systems Journal》的一位人士问我是否可以发表这篇论文。我很高兴地同意了,他们
这篇关于机器人干涉(碰撞)检测基础——Bresenham 直线算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!