Advertisement
manthanthakker40

CG_koch curve

Nov 3rd, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.74 KB | None | 0 0
  1. #include<conio.h>
  2. #include<graphics.h>
  3. #include<stdio.h>
  4. #define SIN 0.86602540
  5. void koch1(int x1,int y1,int x2,int y2,int m)
  6. {
  7.     int x[5],y[5];
  8.     int lx,ly,offx=50,offy=300,xx,yy;
  9.         lx=(x2-x1)/3;
  10.     ly=(y2-y1)/3;
  11.     x[0]=x1;
  12.     y[0]=y1;
  13.     x[4]=x2;
  14.     y[4]=y2;
  15.  
  16.     x[1]=x[0]+lx;
  17.     y[1]=y[0]+ly;
  18.     x[3]=x[0]+2*lx;
  19.     y[3]=y[0]+2*ly;
  20.     xx=x[3]-x[1];
  21.     yy=y[3]-y[1];
  22.     x[2]=xx*0.5+yy*(SIN);
  23.     y[2]=-(xx)*SIN+yy*0.5;
  24.     x[2]=x[2]+x[1];
  25.     y[2]=y[2]+y[1];
  26.  
  27.     if(m>0)
  28.     {
  29.         koch1(x[0],y[0],x[1],y[1],m-1);
  30.         koch1(x[1],y[1],x[2],y[2],m-1);
  31.         koch1(x[2],y[2],x[3],y[3],m-1);
  32.         koch1(x[3],y[3],x[4],y[4],m-1);
  33.     }
  34.     else
  35.     {
  36.         line(offx+x[0],offy+y[0],offx+x[1],offy+y[1]);
  37.         line(offx+x[1],offy+y[1],offx+x[2],offy+y[2]);
  38.         line(offx+x[2],offy+y[2],offx+x[3],offy+y[3]);
  39.         line(offx+x[3],offy+y[3],offx+x[4],offy+y[4]);
  40.     }
  41.  
  42. }
  43. /*
  44. void koch1(int x1,int y1,int x2,int y2,int m)
  45. {
  46.  
  47. int xx,yy,x[5],y[5],lx,ly,offx=50,offy=300;
  48.  
  49. lx=(x2-x1)/3;
  50. ly=(y2-y1)/3;
  51. //printf("hello'");
  52. x[0]=x1;
  53. y[0]=y1;
  54. x[4]=x2;
  55. y[4]=y2;
  56. x[1]=x[0]+lx;
  57. y[1]=y[0]+ly;
  58. x[3]=x[0]+2*lx;
  59. y[3]=y[0]+2*ly;
  60. xx=x[3]-x[1];
  61. yy=y[3]-y[1];
  62. x[2]=xx*0.5+yy*(SIN);
  63. y[2]=-(xx)*SIN+yy*0.5;
  64. x[2]=x[2]+x[1];
  65.  
  66. y[2]=y[2]+y[1];
  67. if(m>0)
  68. {
  69.     koch1(x[0],y[0],x[1],y[1],m-1);
  70.     koch1(x[1],y[1],x[2],y[2],m-1);
  71.     koch1(x[2],y[2],x[3],y[3],m-1);
  72.     koch1(x[3],y[3],x[4],y[4],m-1);
  73.     }
  74.     else
  75.     {
  76.     line(offx+x[0],offy+y[0],offx+x[1],offy+y[1]);
  77.     line(offx+x[1],offy+y[1],offx+x[2],offy+y[2]);
  78.     line(offx+x[2],offy+y[2],offx+x[3],offy+y[3]);
  79.     line(offx+x[3],offy+y[3],offx+x[4],offy+y[4]);
  80.     }
  81.  
  82. }*/
  83.  
  84. void main()
  85. {
  86.     int gd=DETECT,gm;
  87.     int n;
  88.     int x1=0,y1=0,x2=550,y2=0;
  89.     initgraph(&gd,&gm,"C:\\tc\\bgi");
  90.     printf("enter n");
  91.  
  92.     scanf("%d",&n);
  93.     printf("%d",n);
  94.     koch1(x1,y1,x2,y2,n);
  95.     getch();
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement