Digital Differential Analyzer

O Analisador Diferencial Digital (em inglês Digital Differential Analyzer ou simplesmente DDA) é uma implementação digital do analisador diferencial. Os integradores em uma DDA são implementados como acumuladores, com o resultado numérico convertido a uma sequência de pulso pelo overflow do acumulador.

Segue o código para o algoritmo do DDa em C++

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int x1, x2, yl, y2;

int main(  )
{
    int dx,dy,k;
    float xin, passos, yin, x, y;
    cout << "insira x1 e y1: ";
    cin >> x1 >> yl;
    cout << "insira x2 e y2: ";
    cin >> x2 >> y2;
    dx = x2 - x1;
    dy = y2 - yl;
    if( abs( dx ) > abs( dy ) )
    {
        passos = abs( dx );
    }
    else
    {
        passos = abs( dy );
    }
    xin = dx / passos;
    yin = dy / passos;
    x = x1; y = yl;
    round( x ), round( y );
    for( k=1; k < passos; k++ )
    {
        round( xin ), round( yin );
        x = x + xin;
        y = y + yin;
        round( xin ), round( yin );
        cout << "x" << k << ":" << x << "  " << "y" << k << ":" << y << endl;
    }
    system( "PAUSE" );
    return EXIT_SUCCESS;
}