DDA Line Drawing Algorithm in C and C++

Here you will learn about dda line drawing algorithm in C and C++.

In Computer Graphics the first basic line drawing algorithm is Digital Differential Analyzer (DDA) Algorithm.

A line connects two points. It is a basic element in graphics. To draw a line, you need two points between which you can draw a line.

Also Read: Bresenham’s Line Drawing Algorithm in C and C++

Digital Differential Analyzer (DDA) Algorithm

Step 1: Read the input of the 2 end points of the line as (x1, y1) & (x2, y2) such that x1 != x2 and y1 != y2

Step 2: Calculate dx = x2 – x1 and dy = y2 – y1

Step 3:

if(dx>=dy)

step=dx

else

step=dy

Step 4: xin = dx / step & yin = dy / step

Step 5: x = x1 + 0.5 & y = y1 + 0.5

Step 6: 

for(k = 0; k < step; k++)

{

x = x + xin

y = y + yin

putpixel(x, y)

}

Program for DDA Line Drawing Algorithm in C

Outptut

DDA Line Drawing Algorithm in C and C++

Program for DDA Line Drawing Algorithm in C++

Comment below if you have any doubts related above algorithm.

29 thoughts on “DDA Line Drawing Algorithm in C and C++

  1. vishalmadheshiya

    No such file or directory
    #include
    ^
    compilation terminated.

    this error is encountered while compilation of the above written program

    Reply
        1. Dhananjay Panage

          He was asking name of your compiler not your processor! Maybe he meant editor or IDE!

          Reply
    1. Srashti Gupta

      There may be no graphics added in your system.
      import them for internet

      Reply
      1. Dhananjay Panage

        What do you mean by “no graphics added in your system”?

        Reply
  2. Hassan javed

    all programs are awesome, Thanks for such a nice blog, where can I get all the commands used in graphics.h ??? I want to know, making circle, and the arguments of circle, what is first one? Or x and y are used to give it postiion, you things like that,

    Reply
  3. Mark V

    A simple way to explain this might be that you’re simply counting the number of ‘steps’ to take between Point 1 and Point 2, calculating the x-axis length and y-axis of each ‘step’, and then looping to add that step length to X and Y respectively for each step between point 1 to point 2.

    Unless I’m mistaken, your algorithm here (and your Bresenham algorithm too) only works when X2 > X1 and Y2 > Y1. It’s easy to fix for any two arbitrary points: simply subtract the axis length instead of adding it (dx or dy), in the case that X1 > X2 or Y1 > Y2 respectively.

    Reply
  4. aravind

    no error………………output wiil not display…………..

    Reply
  5. vivek

    {
    putpixel(x,y,5);
    x=x+dx;
    y=y+dy;
    i=i+1;
    delay(100);
    }

    ye smjh nhi aaya ki kya use h iska.

    Reply
    1. Ashish Saxena

      graphics.h is not available try without Graphics.h and their functions

      Reply
    2. Srashti Gupta

      Same Problem There must be no graphics added in your compiler. Import them from internet.

      Reply
  6. Ayush

    How to run this on macOS or Linux?? The BGI(Borland Graphics Library) was created for Windows. This code doesn’t work on macOS or Linux?

    Reply
    1. Dhananjay Panage

      This would help you
      First: Go to the working directory (place your file is stored)
      Second: open cmd(command promt there) or press Win+r and then enter cmd in the search box then manually change the path (it will be C: by default)
      Third: when you are in working directory enter gcc “filename.c” -o “filename.exe” (if it is a c program) if the file compiles correctly then press ./”filename.exe” this will run your code
      AND PLEASE MAKE SURE THAT YOU HAVE SET UP YOUR PATH FOR GCC AND REMOVE THE QUOTES WHILE ENTERING THE FILENAME.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.