机器人干涉(碰撞)检测基础——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》的一位人士问我是否可以发表这篇论文。我很高兴地同意了,他们

相关推荐

  1. unity车辆碰撞检测

    2024-03-26 22:06:04       107 阅读
  2. 基于opencv的直线检测(python&C++)

    2024-03-26 22:06:04       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 22:06:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 22:06:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 22:06:04       87 阅读
  4. Python语言-面向对象

    2024-03-26 22:06:04       96 阅读

热门阅读

  1. vue js金额转中文

    2024-03-26 22:06:04       43 阅读
  2. 逻辑回归的详解及应用

    2024-03-26 22:06:04       38 阅读
  3. 第二十七章 TypeScript TS进阶用法infer

    2024-03-26 22:06:04       36 阅读
  4. ubuntu 搭建 sonic v2.6.4 平台记录

    2024-03-26 22:06:04       33 阅读
  5. 【C++】6-2 交换函数2 分数 10

    2024-03-26 22:06:04       37 阅读
  6. ChatGPT秘籍:让ChatGPT帮你打造出色论文

    2024-03-26 22:06:04       39 阅读
  7. 解释器模式

    2024-03-26 22:06:04       36 阅读
  8. iptables笔记

    2024-03-26 22:06:04       35 阅读
  9. Vue中如何实现动态改变字体大小

    2024-03-26 22:06:04       42 阅读
  10. C++与C语言之间的区别

    2024-03-26 22:06:04       46 阅读
  11. JWT令牌

    JWT令牌

    2024-03-26 22:06:04      45 阅读