Skip to main content

C program to implement DDA algorithm

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#define round(a) ((int) (a+0.5))
void lineDDA(int xa,int ya,int xb,int yb);
int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int xa,ya,xb,yb;

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "..\\bgi");

   lineDDA(0,0,640,480);
   lineDDA(640,0,0,480);
   lineDDA(320,0,320,480);
   lineDDA(0,240,640,240);

   getch();
   closegraph();
  
}

void lineDDA(int xa,int ya,int xb,int yb)
{
 int dx=xb-xa,dy=yb-ya,steps,k;
 float xinc,yinc,x=xa,y=ya;

 if(abs(dx)>abs(dy))
  steps=abs(dx);
 else
 steps=abs(dy);

 xinc=dx/(float) steps;
 yinc=dy/(float) steps;
 putpixel(round(x),round(y),5);
 for(k=0;k<steps;k++)
 {       x+=xinc;
  y+=yinc;
  putpixel(round(x),round(y),2);
 }
}


Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Online Movie Ticket Booking Sequence Diagram

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};