数字积分法DDA(DDA(Digital Differential Analyzer)   

数字积分法又称数字微分分析法DDA(Digital differential Analyzer),是在数字积分器的基础上建立起来的一种插补算法。数字积分法的优点是,易于实现多坐标联动,较容易地实现二次曲线、高次曲线的插补,并具有运算速度快,应用广泛。

1.直线插补

基本原理(自己去看,不在赘述)

原理图:

实例:设有直线OE,起点在原点,终点E(xe=5,ye=4),寄存器均为三位二进制寄存器,用DDA法实现插补。

初始化 m=2^n=2^3=8,Σy=0,Σx=0

每一行出现溢出则移动一次。

结果:

实例2

设有一直线OE,如图3-20所示起点坐标O(0,0),终点坐标为E(4,3),累加器和寄存器的位数为3位,其最大可寄存数值为7(J≥8时溢出)。若用二进制计算,起点坐标O(000,000),终点坐标E(100,011),J≥1000时溢出。试采用DDA法对其进行插补。

结果

2. 圆弧插补

第一象限顺圆弧插补器

实例:

加工第一象限顺圆AB,如图3-27,起点A(0,5),终点B(5,0)选用寄存器位数n=3,经过 “半加载”处理后,试用DDA法进行插补计算。

JVX和JVY初始值在顺圆弧插补图中有解释(可以根据第一象限顺圆弧运动开始时x变化快y变化慢,结束是x变化慢y变化快来理解)。

结果:

提高插补精度的措施:

对于DDA圆弧插补,径向误差可能大于一个脉冲当量。

减少误差的方法有:

①减小脉冲当量;

②采用累加器预置数法(规格化)

  即在DDA插补之前,将JRX,JRY的初值不置零,而是预置2^(n-1),使其二进制数最高有效位置“1”,其它各位置零,若再累加100…000,累加器就可以产生第一个溢出脉冲。这种处理方式称为“半加载”(上图中初始值为4就是使用了半加载。)

3. DDA圆弧插补与直线插补的主要区别

  • 圆弧插补中被积函数寄存器寄存的坐标值与对应坐标轴积分器的关系恰好相反。
  • 圆弧插补中被积函数是变量,直线插补的被积函数是常数。
  • 圆弧插补终点判别需采用两个终点计数器。对于直线插补,如果寄存器位数为n,无论直线长短都需累加2^n次到达终点。

数字积分法DDA(DDA(Digital Differential Analyzer)的更多相关文章

  1. 菜鸟学四轴控制器之3:数字积分法DDA实现直线插补

    上一篇的逐点比较法显然是无法画一条有倾角的直线的.因为X轴和Y轴永远都不同步,也就是像打台球一样,你打一个,我打一个,如果我进了球,我再接着打一个. 也就是说,如果直线为45度,也是没有办法画出来的, ...

  2. 两种画线算法(DDA&Bersenham)

    DDA(digital differential analyzer) 由直线的斜截式方程引入 对于正斜率的线段,如果斜率<=1,则以单位x间隔(δx=1)取样,并逐个计算每一个y值 Yk+1 = ...

  3. DDA, Bresenham line's algorithm and Voxel Traversal used in the Grid-Accelerator in PBRT

        - DDA(Digital Differential Analyzer, 数值微分法) -    计算机图形学中,经常会遇到一些计算机中”经典“的问题.例如,如何利用计算机”离散“的特质,模拟 ...

  4. DDA算法

    [DDA算法] Digital Differential Analyzer,DDA算法是一种线段扫描转换算法.(线段光栅化算法) DDA算法优缺点: 1.消除了直线方程中的乘法计算,而在x.y方向使用 ...

  5. 计算机图形学之扫描转换直线-DDA,Bresenham,中点画线算法

    1.DDA算法 DDA(Digital Differential Analyer):数字微分法 DDA算法思想:增量思想 公式推导: 效率:采用了浮点加法和浮点显示是需要取整 代码: void lin ...

  6. 直线扫描转换-DDA算法

    直线扫描转换-DDA算法 直线段的扫描转换算法 已知两个点,求直线. 为了在光栅显示器上用这些离散的像素点逼近这条直线,需要知道这些像素点的x,y坐标. 求出过P0,P1的直线段方程: y=kx+b ...

  7. 【十天自制软渲染器】DAY 02:画一条直线(DDA 算法 & Bresenham’s 算法)

    推荐关注公众号「卤蛋实验室」或访问博客原文,更新更及时,阅读体验更佳 第一天我们搭建了 C++ 的运行环境并画了一个点,根据 点 → 线 → 面 的顺序,今天我们讲讲如何画一条直线. 本文主要讲解直线 ...

  8. 计算机图形学(二)输出图元_3_画线算法_2_DDA算法

    DDA算法        数字微分分析仪(digital differential analyzer, DDA)方法是一种线段扫描转换算法.基于使用等式(3.4)或等式(3.5)计算的&x或& ...

  9. 图形学3D渲染管线学习

    图形学3D渲染管线 DX和OpenGL左右手坐标系不同,会有一些差距,得出的矩阵会不一样; OpenGL的投影平面不是视景体的近截面: 顶点(vertexs) 顶点坐标,颜色,法线,纹理坐标(UV), ...

随机推荐

  1. 查询死锁和处理死锁(SqlServer)

    -------------------查询死锁,极其引起的原因-------------------------------use master go create procedure sp_who_ ...

  2. animate.min.css 动画样式移动端存在的问题

    使用animate.min.css可以使用很多动画效果,包括3D效果,现在也可以应用于HTML5手机移动端,使用切换效果的时候会导致页面出现卡顿现象,可以使用css3 transform 方法硬件加速 ...

  3. UVALive 6525 Attacking rooks 二分匹配 经典题

    题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=4536">点击打开链接 题意: ...

  4. 一、Solr综述

    什么是Solr搜索 我们经常会用到搜索功能,所以也比较熟悉,这里就简单的介绍一下搜索的原理. 当然只是介绍solr的原理,并不是搜索引擎的原理,那会更复杂. 流程图 这是一个非常简单的流程图: Use ...

  5. [ES6] When should use Map instead of Object

    Use Maps when keys are unknown until runtime: Map: let recentPosts = new Map(); createPost( newPost, ...

  6. Intellj IDEA 启动参数调优

    (修改前记得备份) 修改IntellJ/bin/idea.exe.vmoptions修改成 -Xms512m -Xmx512m -Xmn164m -XX:MaxPermSize=250m -XX:Re ...

  7. Android 属性动画(二)

    当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~ 1.如何使用xml文件来创建属性动画 大家肯定都清楚,View Animator .Drawable Animator都 ...

  8. 输入一个字符串,输出时数字倒序。例如:输入"hello2345wo7654",输出则为"hello5432wo4567"

    public class ReserveString { public static void main(String[] args) { System.out.println("Pleas ...

  9. USB 管道 && 端点

    管道是对主机和usb设备间通信流的抽象.      管道和usb设备中的端点一一对应,一个usb设备含有多少个端点,其和主机进行通信时就可以使用多少条管道,且端点的类型决定了管道中数据的传输类型.  ...

  10. 小学生之Log4j使用教程

    以前都是把所有日志都输出到一个文件下面,今天有个同事问想把某个包下的日志输出到 指定的地方,于是就在网上查了一些资料,总结一下,以免以后用到. 一.log4j是什么?  Log4j是一个开源的日志记录 ...