/* Digital Differential Analyzer (DDA) algorithm for drawing a triangle. Code from Computer Graphics (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-codes/CG */ // BEGINNING OF CODE #include #include using namespace std; class triangle_maker { public: int gd=DETECT, gm; float x1, y1, x2, y2, x, y; float len, dx, dy, xin, yin; // Function to make edges of triangle void edge(float x1, float y1, float x2, float y2){ initgraph(&gd, &gm, NULL); dx=x2-x1; dy=y2-y1; if (abs(dx)>=abs(dy)) { len=abs(dx); } else { len=abs(dy); } xin=dx/len; yin=dy/len; x=x1; y=y1; int i=0; while (i<=len) { putpixel(round(x),round(y),WHITE); x=x+xin; y=y+yin; i++; } } }; int main(){ float X1,X2,X3,Y1,Y2,Y3; triangle_maker obj_triangle; cout<<"Enter X coordinate for first edge:\t"; cin>>X1; cout<<"Enter Y coordinate for first edge:\t"; cin>>Y1; cout<<"Enter X coordinate for second edge:\t"; cin>>X2; cout<<"Enter Y coordinate for second edge:\t"; cin>>Y2; cout<<"Enter X coordinate for third edge:\t"; cin>>X3; cout<<"Enter Y coordinate for third edge:\t"; cin>>Y3; obj_triangle.edge(X1,Y1,X2,Y2); obj_triangle.edge(X2,Y2,X3,Y3); obj_triangle.edge(X3,Y3,X1,Y1); delay(50000); closegraph(); return 0; } // END OF CODE