Program for Bresenham's Line Drawing Algorithm in C++



#include <iostream>
#include <graphics.h>
#include <conio.h>
using namespace std;
int main()
{
int x,y,x1,y1,x2,y2,dx,dy,step,P;
    int i=1,gd=DETECT,gm;
    float m;

    cout<<"Enter the first point(x1,y1)";
    cin>>x1>>y1;
    cout<<"Enter the second point(x2,y2)";
    cin>>x2>>y2;
    char path[]="";
    initgraph(&gd,&gm,path);
    dx= abs(x2-x1);
    dy = abs(y2-y1);
    m = dy/dx;
    x=x1;
    y=y1;
    putpixel(x,y,WHITE);

    if(dx>=dy)
    {
    step =dx;
    }
    else
    {
    step =dy;
    }
    if(m<1)
    {
        P = 2*dy - dx;
    while(i<=step)
    {
    if(P>0)
    {
    x=x+1;
    y=y+1;
    putpixel(x,y,WHITE);
    P = P+ 2*dy-2*dx;
    }
    else
    {
    x=x+1;
    y=y;

    putpixel(x,y,WHITE);
    P = P+ 2*dy;
    }
    i++;
    }
    }
    else if(m>1)
    {
        P = 2*dx - dy;
    while(i<=step)
    {
    if(P>0)
    {
    x=x+1;
    y=y+1;

    putpixel(x,y,WHITE);
                P = P+ 2*dx-2*dy;
    }
    else
    {
    x=x;
    y=y+1;

    putpixel(x,y,WHITE);
    P = P+ 2*dx;
    }
    i++;
    }
    }
    else
    {
        while(i<=step)
    {
            x=x+1;
            y=y+1;
            putpixel(x,y,WHITE);
    i++;
    }
    }
getch();
closegraph();
return 0;
}


OUTPUT:



Comments

Popular posts from this blog

HOW TO SETUP CODE BLOCKS FOR GRAPHICS PROGRAMS

Smile emoji using graphics in Java using Applet