Digital Differential Analyzer
Aspeto
Este artigo não cita fontes confiáveis. (Setembro de 2020) |
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;
}