#include<iostream>
#include<graphics.h>
#include<cmath>
using namespace std;
void DDA(int X0, int Y0, int X1, int Y1)
{
int dx = X1 - X0;
int dy = Y1 - Y0;
float Xinc = dx / (float) steps;
float Yinc = dy / (float) steps;
float X = X0;
float Y = Y0;
for (int i = 0; i <= steps; i++)
{
putpixel (X,Y,RED); // put pixel at (X,Y)
X += Xinc; // increment in x at each step
Y += Yinc; // increment in y at each step
delay(100); // for visualization of line-
// generation step by step
}
}
int main()
{
int gd = DETECT, gm;
initgraph (&gd, &gm, "");
int X0 = 2, Y0 = 2, X1 = 14, Y1 = 16;
DDA(2, 2, 14, 16);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGdyYXBoaWNzLmg+CiNpbmNsdWRlPGNtYXRoPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIEREQShpbnQgWDAsIGludCBZMCwgaW50IFgxLCBpbnQgWTEpCnsKICAgIGludCBkeCA9IFgxIC0gWDA7CiAgICBpbnQgZHkgPSBZMSAtIFkwOwogICAgaW50IHN0ZXBzID0gYWJzKGR4KSA+IGFicyhkeSkgPyBhYnMoZHgpIDogYWJzKGR5KTsKICAgIGZsb2F0IFhpbmMgPSBkeCAvIChmbG9hdCkgc3RlcHM7CiAgICBmbG9hdCBZaW5jID0gZHkgLyAoZmxvYXQpIHN0ZXBzOwogICAgZmxvYXQgWCA9IFgwOwogICAgZmxvYXQgWSA9IFkwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gc3RlcHM7IGkrKykKICAgIHsKICAgICAgICBwdXRwaXhlbCAoWCxZLFJFRCk7ICAvLyBwdXQgcGl4ZWwgYXQgKFgsWSkKICAgICAgICBYICs9IFhpbmM7ICAgICAgICAgICAvLyBpbmNyZW1lbnQgaW4geCBhdCBlYWNoIHN0ZXAKICAgICAgICBZICs9IFlpbmM7ICAgICAgICAgICAvLyBpbmNyZW1lbnQgaW4geSBhdCBlYWNoIHN0ZXAKICAgICAgICBkZWxheSgxMDApOyAgICAgICAgICAvLyBmb3IgdmlzdWFsaXphdGlvbiBvZiBsaW5lLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdlbmVyYXRpb24gc3RlcCBieSBzdGVwCiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBpbnQgZ2QgPSBERVRFQ1QsIGdtOwogICAgaW5pdGdyYXBoICgmZ2QsICZnbSwgIiIpOwogICAgaW50IFgwID0gMiwgWTAgPSAyLCBYMSA9IDE0LCBZMSA9IDE2OwogICAgRERBKDIsIDIsIDE0LCAxNik7CiAgICByZXR1cm4gMDsKfQ==