#include<stdio.h> #include<graphics.h> struct point { int x,y; }pol[3],polnew[3],wmin,wmax,vmin,vmax; float sx=0.5,sy=0.5; int n=3,max; float trans[3][3],result[3][1],xandy[3][1]; float minside() { int i; float a,s; i=0; s=sqrt((pol[i].x-pol[(i+1)%3].x)*(pol[i].x-pol[(i+1)%3].x)+ (pol[i].y-pol[(i+1)%3].y)*(pol[i].y-pol[(i+1)%3].y)); for(i=1;i<3;i++) { a=sqrt((pol[i].x-pol[(i+1)%3].x)*(pol[i].x-pol[(i+1)%3].x)+ (pol[i].y-pol[(i+1)%3].y)*(pol[i].y-pol[(i+1)%3].y)); if(a<s) s=a; } return s; } void readpoly() { int i; for(i=0;i<n;i++) { printf("\nEnter the %d co=ordinates ",i+1); scanf("%d%d",&pol[i].x,&pol[i].y); } } void drawpolygon(struct point p[]) { int i; for(i=0;i<n;i++) line(p[i].x,p[i].y,p[(i+1)%n].x,p[(i+1)%n].y); } void mulmat() { int i,j,k; for(i=0;i<3;i++) { for(j=0;j<1;j++) { result[i][j]=0.0; for(k=0;k<3;k++) result[i][j]+=trans[i][k]*xandy[k][j]; } } } void transformpoly(struct point p1[],struct point p2[]) { int i; for(i=0;i<n;i++) { xandy[0][0]=p1[i].x; xandy[1][0]=p1[i].y; xandy[2][0]=1; mulmat(); p2[i].x=result[0][0]; p2[i].y=result[1][0]; } } void makeIdentity() { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) trans[i][j]=0.0; trans[i][i]=1.0; } } void sierp(struct point pp[],int level) { struct point p1[3],p2[3],p3[3]; int dx,dy,i; level++; if(level==max) return; makeIdentity(); trans[0][0]=sx; trans[0][2]=(1-sx)*(float)pp[0].x; trans[1][1]=sy; trans[1][2]=(1-sy)*(float)pp[0].y; transformpoly(pp,p1); drawpolygon(p1); makeIdentity(); dx=-p1[1].x; dy=-p1[1].y; trans[0][2]=dx; trans[1][2]=dy; transformpoly(p1,p2); makeIdentity(); dx=pp[1].x; dy=pp[1].y; trans[0][2]=dx; trans[1][2]=dy; transformpoly(p2,p2); drawpolygon(p2); makeIdentity(); dx=-p1[2].x; dy=-p1[2].y; trans[0][2]=dx; trans[1][2]=dy; transformpoly(p1,p3); makeIdentity(); dx=pp[2].x; dy=pp[2].y; trans[0][2]=dx; trans[1][2]=dy; transformpoly(p3,p3); drawpolygon(p3); sierp(p1,level); sierp(p2,level); sierp(p3,level); } int main() { int gd=DETECT,gm=VGAMAX; int choice,dx,dy,i; float small; readpoly(); initgraph(&gd,&gm,NULL); drawpolygon(pol); setcolor(RED); getch(); small=minside(); max=2+(int)small/50; sierp(pol,0); while (!kbhit()); closegraph(); return 0; }
Sunday, December 12, 2010
Draw a Sierpinski triangle using fractal geometric method

Sunday, November 21, 2010
Draw a piechart

#include<stdio.h> #include<graphics.h> #include<math.h> #define ROUND(a)((int)(a+0.5)) int p[10]; float trans[3][3],result[3][1],xandy[3][1]; void plot(int,int,int,int); void boundaryfill4(int,int,int,int); void DDA(int xa,int ya,int xb,int yb) { int dx,dy,steps,k; dx=xb-xa; dy=yb-ya; float x=xa,y=ya,xinc,yinc; 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),10); for(k=0;k<steps;k++) { x+=xinc; y+=yinc; putpixel(ROUND(x),ROUND(y),10); } } void midpoint(int xc,int yc,int r) { int x=0; int y=r; int p=1-r; plot(xc,yc,x,y); while(x<y) { x++; if(p<0) p+=2*x+1; else { y--; p+=2*(x-y)+1; } plot(xc,yc,x,y); } } void plot(int xc,int yc,int x,int y) { putpixel(xc+x,yc+y,10); putpixel(xc-x,yc+y,10); putpixel(xc+x,yc-y,10); putpixel(xc-x,yc-y,10); putpixel(xc+y,yc+x,10); putpixel(xc-y,yc+x,10); putpixel(xc+y,yc-x,10); putpixel(xc-y,yc-x,10); } void boundaryfill4(int x,int y,int new,int bdry) { int current=getpixel(x,y); if((current!=bdry)&&(current!=new)) { putpixel(x,y,new); boundaryfill4(x+1,y,new,bdry); boundaryfill4(x-1,y,new,bdry); boundaryfill4(x,y+1,new,bdry); boundaryfill4(x,y-1,new,bdry); } } void mulmat() { int i,j,k; for(i=0;i<3;i++) { for(j=0;j<1;j++) { result[i][j]=0.0; for(k=0;k<3;k++) result[i][j]+=trans[i][k]*xandy[k][j]; } } } void transformpoint(int x,int y) { xandy[0][0]=x; xandy[1][0]=y; xandy[2][0]=1; mulmat(); } void makeIdentity() { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) trans[i][j]=0.0; trans[i][i]=1.0; } } void rotate(int rx,int ry,int an) { float ang; ang=(float)(an*(3.14/180)); trans[0][0]=cos(ang); trans[0][1]=-sin(ang); trans[0][2]=rx*(1-cos(ang))+ry*sin(ang); trans[1][0]=sin(ang); trans[1][1]=cos(ang); trans[1][2]=ry*(1-cos(ang))-rx*sin(ang); } int main() { int gd=DETECT,gm=VGAMAX,n,i,tot=0,r=100,rx,ry,x,y,midx,midy,prx,pry; float an1=0.0,an=0.0; printf("enter the no. of data"); scanf("%d",&n); do{ for(i=0;i<n;i++) { printf("\nEnter the data "); scanf("%d",&p[i]); tot+=p[i]; } if(tot!=100) { printf("Error in data. Enter it again "); tot=0; } }while(tot!=100); initgraph(&gd,&gm,"NULL"); rx=getmaxx()/2; ry=getmaxy()/2; x=rx; y=r+ry; midx=rx; midy=(y+ry)/2; midpoint(rx,ry,r); DDA(rx,ry,x,y); for(i=0;i<n;i++) { makeIdentity(); an1=an+(float)(p[i]*3.6)/2; an+=(float)p[i]*3.6; rotate(rx,ry,an); transformpoint(x,y); DDA(rx,ry,result[0][0],result[1][0]); makeIdentity(); rotate(rx,ry,an1); transformpoint(midx,midy); boundaryfill4(result[0][0],result[1][0],i+1,10); } while(!kbhit()); closegraph(); return 0; }
Draw a Sierpinski triangle

#include<stdio.h> #include<graphics.h> #include<math.h> #define pi 3.142857 #define ROUND(a)((int)(a+0.5)) int max; void DDA(int xa,int ya,int xb,int yb) { int dx,dy,steps,k; dx=xb-xa; dy=yb-ya; float x=xa,y=ya,xinc,yinc; 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),5); } } float minside(int x1,int y1,int x2,int y2,int x3,int y3) { float a,b,c,s; a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); b=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)); c=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)); if(a>b) s=a; else s=b; if(s>c) s=c; return s; } void triangle(int x1,int y1,int x2,int y2,int x3,int y3,int i) { float newx1,newy1,newx2,newy2,newx3,newy3; i++; if(i==max) return; else { DDA(x1,y1,x2,y2); DDA(x2,y2,x3,y3); DDA(x3,y3,x1,y1); newx1=(x1+x2)/2 ; newy1=(y1+y2)/2; newx2=(x2+x3)/2 ; newy2=(y2+y3)/2; newx3=(x1+x3)/2 ; newy3=(y1+y3)/2; triangle(x1,y1,newx1,newy1,newx3,newy3,i); triangle(x2,y2,newx1,newy1,newx2,newy2,i); triangle(x3,y3,newx2,newy2,newx3,newy3,i); } } int main() { int gd=DETECT,gm=VGAMAX; int x1,y1,x2,y2,x3,y3; float small; printf("\n Enter the 1st coordinates of the triangle"); scanf("%d%d",&x1,&y1); printf("\n enter the 2nd coordinates of the triangle"); scanf("%d%d",&x2,&y2); printf("\n enter the 3rd coordinates of the triangle"); scanf("%d%d",&x3,&y3); initgraph(&gd,&gm,"null"); small=minside(x1,y1,x2,y2,x3,y3); max=2+(int)small/20; triangle(x1,y1,x2,y2,x3,y3,0); while (!kbhit()); closegraph(); return 0; }
Draw a polygon. Use Bresenham line drawing algorithm

//Reference:- David F. Rogers "Procedural Elements for Computer Graphics" Second Edition #include<stdio.h> #include<graphics.h> #include<math.h> #define ROUND(a)((int)(a+0.5)) struct point { int x,y; }pol[10]; int n; void DDA(int,int,int,int); void Bresenham(int,int,int,int); void readpoly() { int i; for(i=0;i<n;i++) { printf("\nEnter the %d coordinates ",i+1); scanf("%d%d",&pol[i].x,&pol[i].y); } } void drawpolygonDDA() { int i; for(i=0;i<n;i++) DDA(pol[i].x,pol[i].y,pol[(i+1)%n].x,pol[(i+1)%n].y); } void drawpolygonBres() { int i; for(i=0;i<n;i++) { delay(500); Bresenham(pol[i].x,pol[i].y,pol[(i+1)%n].x,pol[(i+1)%n].y); } } int main() { int xa,ya,xb,yb,choice,gd=DETECT,gm=VGAMAX; printf("\nEnter the no of sides "); scanf("%d",&n); readpoly(); initgraph(&gd,&gm,NULL); printf("Press any key to draw traingle using Bresenham line drawing algortihm over the triangle drawn using DDA line drawing algorithm"); drawpolygonDDA(); getch(); drawpolygonBres(); while (!kbhit()); closegraph(); return 0; } void DDA(int xa,int ya,int xb,int yb) { int dx,dy,steps,k; dx=xb-xa; dy=yb-ya; float x=xa,y=ya,xinc,yinc; 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),5); } } void Bresenham(int xa,int ya,int xb,int yb) { int i,dx=xb-xa,dy=yb-ya,p,twod,twodd,s; float m=2; if(dx!=0) m=(float)dy/(float)dx; if(m>=-1&&m<=1) { if(xa>xb) { Bresenham(xb,yb,xa,ya); return; } p=2*dx-dy; if(dy<0) { s=-1; dy=-dy; } else s=1; putpixel(xa,ya,10); for(i=0;i<dy;i++) { while(p>0) { xa++; p-=2*dy; putpixel(xa,ya,10); } ya+=s; p+=2*dx; putpixel(xa,ya,10); } } else { if(ya>yb) { Bresenham(xb,yb,xa,ya); return; } p=2*dy-dx; if(dx<0) { s=-1; dx=-dx; } else s=1; putpixel(xa,ya,10); for(i=0;i<dx;i++) { while(p>0) { ya++; p-=2*dx; putpixel(xa,ya,10); } xa+=s; p+=2*dy; putpixel(xa,ya,10); } } }
Tuesday, October 26, 2010
Draw a polygon. Use Bresenham/Midpoint line drawing algorithm

Write a program to draw a polygon. Use Bresenham/Midpoint line drawing algorithm to draw line.
Note:- Bresenham/Midpoint algorithm used here can be used to draw lines having any slope.
Note:- Bresenham/Midpoint algorithm used here can be used to draw lines having any slope.
#include<stdio.h> #include<graphics.h> #include<math.h> #define ROUND(a)((int)(a+0.5)) struct point { int x,y; }pol[10]; int n; void DDA(int,int,int,int); void Bresenham(int,int,int,int); void readpoly() { int i; for(i=0;i<n;i++) { printf("\nEnter the %d co=ordinates ",i+1); scanf("%d%d",&pol[i].x,&pol[i].y); } } void drawpolygonDDA() { int i; for(i=0;i<n;i++) DDA(pol[i].x,pol[i].y,pol[(i+1)%n].x,pol[(i+1)%n].y); } void drawpolygonBres() { int i; for(i=0;i<n;i++) { delay(500); Bresenham(pol[i].x,pol[i].y,pol[(i+1)%n].x,pol[(i+1)%n].y); } } int main() { int xa,ya,xb,yb,choice,gd=DETECT,gm=VGAMAX; printf("\nEnter the no of sides "); scanf("%d",&n); readpoly(); initgraph(&gd,&gm,NULL); printf("Press any key to draw traingle using Bresenham Midpoint line drawing algortihm over the triangle drawn using DDA line drawing algorithm"); drawpolygonDDA(); getch(); drawpolygonBres(); while (!kbhit()); closegraph(); return 0; } void DDA(int xa,int ya,int xb,int yb) { int dx,dy,steps,k; dx=xb-xa; dy=yb-ya; float x=xa,y=ya,xinc,yinc; 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),5); } } void Bresenham(int xa,int ya,int xb,int yb) { int dx=xb-xa,dy=yb-ya,p,twod,twodd; float m=2; if(dx!=0) m=(float)dy/(float)dx; if(m>=-1&&m<=1) { if(xa>xb) { Bresenham(xb,yb,xa,ya); return; } if(dy<0) { m=-1; dy=-dy; } else m=1; putpixel(xa,ya,10); p=2*dy-dx; twod=2*dy; twodd=2*dy-2*dx; while(xa<xb) { xa++; if(p<0) p+=twod; else { ya+=m; p+=twodd; } putpixel(xa,ya,10); } } else { if(ya>yb) { Bresenham(xb,yb,xa,ya); return; } if(dx<0) { m=-1; dx=-dx; } else m=1; putpixel(xa,ya,10); p=2*dx-dy; twod=2*dx; twodd=2*dx-2*dy; while(ya<yb) { ya++; if(p<0) p+=twod; else { xa+=m; p+=twodd; } putpixel(xa,ya,10); } } }
Monday, October 25, 2010
Window to viewport transformation

#include<stdio.h> #include<graphics.h> struct point { int x,y; } pol[10],wmin,wmax,vmin,vmax; int n; float trans[3][3],result[3][1],xandy[3][1]; void readpoly() { int i; for(i=0;i<n;i++) { printf("\nEnter the %d co=ordinates ",i+1); scanf("%d%d",&pol[i].x,&pol[i].y); } } void drawpolygon() { int i; for(i=0;i<n;i++) line(pol[i].x,pol[i].y,pol[(i+1)%n].x,pol[(i+1)%n].y); } void mulmat() { int i,j,k; for(i=0;i<3;i++) { for(j=0;j<1;j++) { result[i][j]=0.0; for(k=0;k<3;k++) result[i][j]+=trans[i][k]*xandy[k][j]; } } } void transformpoly() { int i; for(i=0;i<n;i++) { xandy[0][0]=pol[i].x; xandy[1][0]=pol[i].y; xandy[2][0]=1; mulmat(); pol[i].x=result[0][0]; pol[i].y=result[1][0]; } } void makeIdentity() { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) trans[i][j]=0.0; trans[i][i]=1.0; } } int main() { int gd=DETECT,gm=VGAMAX; int choice,dx,dy; float sx,sy; printf("\nEnter the minx and miny of window "); scanf("%d%d",&wmin.x,&wmin.y); printf("\nEnter the maxx and maxy of window "); scanf("%d%d",&wmax.x,&wmax.y); printf("\nEnter the minx and miny of view port "); scanf("%d%d",&vmin.x,&vmin.y); printf("\nEnter the maxx and maxy of view port "); scanf("%d%d",&vmax.x,&vmax.y); while(1) { makeIdentity(); printf("\nMENU\n-------\n1.POLYGON\n2.EXIT"); printf("\nEnter the choice "); scanf("%d",&choice); switch(choice) { case 1: printf("\nEnter the no of sides "); scanf("%d",&n); readpoly(); initgraph(&gd,&gm,NULL); outtextxy(200,10,"Window"); rectangle(wmin.x,wmin.y,wmax.x,wmax.y); drawpolygon(); break; case 2: exit(0); default:printf("\nInvalid choice "); } getch(); cleardevice(); outtextxy(200,10,"View Port"); sx=(float)(vmax.x-vmin.x)/(float)(wmax.x-wmin.x); sy=(float)(vmax.y-vmin.y)/(float)(wmax.y-wmin.y); trans[0][0]=sx; trans[0][2]=(1-sx)*(float)wmin.x; trans[1][1]=sy; trans[1][2]=(1-sy)*(float)wmin.y; transformpoly(); dx=-wmin.x; dy=-wmin.y; makeIdentity(); trans[0][2]=dx; trans[1][2]=dy; transformpoly(); dx=vmin.x; dy=vmin.y; makeIdentity(); trans[0][2]=dx; trans[1][2]=dy; transformpoly(); setcolor(RED); rectangle(vmin.x,vmin.y,vmax.x,vmax.y); drawpolygon(); while (!kbhit()); closegraph(); } return 0; }
Sunday, October 24, 2010
Analog clock

#include<stdio.h> #include<graphics.h> #include<math.h> #include<time.h> #define round(a)((int)(a+0.5)) int main() { int gd=DETECT,gm=VGAMAX,sx=0,sy=0,mx=0,my=0,hx=0,hy=0,f=0; float hour,min; time_t now; struct tm *t; initgraph(&gd,&gm,"NULL"); setcolor(2); circle(300,300,100); setcolor(14); circle(300,300,110); setcolor(3); circle(300,300,120); do { time(&now); t=localtime(&now); if(f!=0) { setcolor(BLACK); line(300,300,sx,sy); line(300,300,mx,my); line(300,300,hx,hy); } hour=(t->tm_hour)%12+((float)t->tm_min/60.0); min=t->tm_min+((float)t->tm_sec/60.0); sx=300+round(90*cos(3.1412*(270+(6*t->tm_sec))/180)); sy=300+round(90*sin(3.1412*(270+(6*t->tm_sec))/180)); mx=300+round(90*cos(3.1412*(270+(6*min))/180)); my=300+round(90*sin(3.1412*(270+(6*min))/180)); hx=300+round(50*cos(3.1412*(270+(30*hour))/180)); hy=300+round(50*sin(3.1412*(270+(30*hour))/180)); outtextxy(294,380,"6"); outtextxy(380,300,"3"); outtextxy(293,220,"12"); outtextxy(220,300,"9"); setcolor(YELLOW); line(300,300,mx,my); setcolor(10); line(300,300,hx,hy); setcolor(RED); line(300,300,sx,sy); f=1; }while(!kbhit()); printf("Current time %d:%d:%d",t->tm_hour,t->tm_min,t->tm_sec); getch(); while(!kbhit()); closegraph(); return 0; }
Wednesday, October 13, 2010
Draw the following figure(1)

#include<stdio.h> #include<graphics.h> struct point { int x,y; }pol[3],polnew[3],circ,insid[12]; int n,r; float trans[3][3],result[3][1],xandy[3][1]; void plot(int,int,int,int); void boundaryfill4(int,int,int,int); void midpoint(int xc,int yc,int r) { int x=0; int y=r; int p=1-r; plot(xc,yc,x,y); while(x<y) { x++; if(p<0) p+=2*x+1; else { y--; p+=2*(x-y)+1; } plot(xc,yc,x,y); } } void plot(int xc,int yc,int x,int y) { putpixel(xc+x,yc+y,10); putpixel(xc-x,yc+y,10); putpixel(xc+x,yc-y,10); putpixel(xc-x,yc-y,10); putpixel(xc+y,yc+x,10); putpixel(xc-y,yc+x,10); putpixel(xc+y,yc-x,10); putpixel(xc-y,yc-x,10); } void drawpol() { int i; for(i=0;i<2;i++) line(pol[i].x,pol[i].y,pol[(i+1)].x,pol[(i+1)].y); } void drawnewpol() { int i; for(i=0;i<2;i++) line(polnew[i].x,polnew[i].y,polnew[(i+1)].x,polnew[(i+1)].y); } void mulmat() { int i,j,k; for(i=0;i<3;i++) { for(j=0;j<1;j++) { result[i][j]=0.0; for(k=0;k<3;k++) result[i][j]+=trans[i][k]*xandy[k][j]; } } } void transformpoint(int x,int y) { xandy[0][0]=x; xandy[1][0]=y; xandy[2][0]=1; mulmat(); } void transformpoly() { int i; for(i=0;i<3;i++) { xandy[0][0]=pol[i].x; xandy[1][0]=pol[i].y; xandy[2][0]=1; mulmat(); polnew[i].x=result[0][0]; polnew[i].y=result[1][0]; } } void makeIdentity() { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) trans[i][j]=0.0; trans[i][i]=1.0; } } void rotate(int rx,int ry,int an) { float ang; ang=(float)(an*(3.14/180)); trans[0][0]=cos(ang); trans[0][1]=-sin(ang); trans[0][2]=rx*(1-cos(ang))+ry*sin(ang); trans[1][0]=sin(ang); trans[1][1]=cos(ang); trans[1][2]=ry*(1-cos(ang))-rx*sin(ang); } void boundaryfill4(int x,int y,int new,int bdry) { int current=getpixel(x,y); if((current!=bdry)&&(current!=new)) { putpixel(x,y,new); boundaryfill4(x+1,y,new,bdry); boundaryfill4(x-1,y,new,bdry); boundaryfill4(x,y+1,new,bdry); boundaryfill4(x,y-1,new,bdry); } } int main() { int i,j,angle=0,gd=DETECT,gm=VGAMAX,ch; int color[]={1,14,3,4,5,6,7,8,9,11,12,13}; printf("Enter the orgin "); scanf("%d%d",&circ.x,&circ.y); printf("Enter the radius "); scanf("%d",&r); do{ printf("\nMENU\n-------\n1.Enter inside points to fill\n 2.Take the inside points automatically"); printf("\nEnter ur choice "); scanf("%d",&ch); }while(ch>2&&ch<1); if(ch==1) { printf("\nEnter the inside point of circle "); scanf("%d%d",&insid[0].x,&insid[0].y); for(i=1;i<12;i++) { printf("\nEnter the inside point %d ",i); scanf("%d%d",&insid[i].x,&insid[i].y); } } initgraph(&gd,&gm,"NULL"); setcolor(10); midpoint(circ.x,circ.y,r); makeIdentity(); j=360/11; pol[0].x=circ.x; pol[0].y=circ.y+r; pol[1].x=pol[0].x; pol[1].y=pol[0].y+50; rotate(circ.x,circ.y,j); transformpoint(pol[0].x,pol[0].y); pol[2].x=result[0][0]; pol[2].y=result[1][0]; rotate(circ.x,circ.y,360/22); transformpoint(pol[1].x,pol[1].y); pol[1].x=result[0][0]; pol[1].y=result[1][0]; if(ch==2) { insid[0].x=circ.x; insid[0].y=circ.y; insid[1].x=(pol[0].x+pol[1].x+pol[2].x)/3; insid[1].y=(pol[0].y+pol[1].y+pol[2].y)/3; } boundaryfill4(insid[0].x,insid[0].y,color[0],10); drawpol(); boundaryfill4(insid[1].x,insid[1].y,color[1],10); for(i=0;i<10;i++) { angle+=j; rotate(circ.x,circ.y,angle); transformpoly(); drawnewpol(); if(ch==2) { insid[i+2].x=(polnew[0].x+polnew[1].x+polnew[2].x)/3; insid[i+2].y=(polnew[0].y+polnew[1].y+polnew[2].y)/3; } boundaryfill4(insid[i+2].x,insid[i+2].y,color[i+2],10); } while(!kbhit()); closegraph(); return 0; }
Tuesday, October 12, 2010
Rotate a triangle along the circumference of a circle, also rotate the triangle with reference to its centroid

Rotate a triangle along the circumference of a circle, also rotate the triangle with reference to its centroid.
Use midpoint algorithm for circle drawing.
Use midpoint algorithm for circle drawing.
Tuesday, October 5, 2010
Monday, October 4, 2010
Tuesday, September 28, 2010
Monday, September 27, 2010
Monday, September 6, 2010
2D Transformation

Write a program to apply combination of transformation, rotation, reflection and shearing) on the following objects. a)Polygon b)Circle
Sunday, August 15, 2010
Tuesday, August 3, 2010
Filling - recursive and non-recursive method

3. Write a program to implement following seed filling algorithms on polygon, circle and an ellipse.
a) floodfill b) boundary fill
Recursive and Non Recursive method
a) floodfill b) boundary fill
Recursive and Non Recursive method
Circle Drawing

2. Write a program to draw a circle using parametric and midpoint algorithm.
Line Drawing

1. Write a program to draw line using DDA algorithm and Bresenham's algorithm.
Subscribe to:
Posts (Atom)