Guest User

Untitled

a guest
Jan 23rd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. /*
  2. Title: Flood Fill Algorithm
  3. Description: A C Program to draw any shape and fill color in it using Flood Fill Algorithm's either 4-connected or 8-connected approach
  4. Author: Saideep Dicholkar
  5. */
  6.  
  7. #include<stdio.h>
  8. #include<conio.h>
  9. #include<graphics.h>
  10. void ffill(int,int,int,int,int);
  11. void convex(int,int);
  12. void concave(int,int);
  13. void main()
  14. {
  15. int gd=DETECT,gm,ch,x,y;
  16. initgraph(&gd,&gm,"C:\\tc\\bgi");
  17. cleardevice();
  18. printf("1.Convex Polygon\n2.Concave Polygon\nEnter Choice: ");
  19. scanf("%d",&ch);
  20. x=(100+152)/2;
  21. y=(100+152)/2;
  22. switch(ch)
  23. {
  24. case 1: convex(x,y);
  25. break;
  26. case 2: concave(x,y);
  27. break;
  28. default: printf("Wrong choice entered");
  29. break;
  30. }
  31. getch();
  32. closegraph();
  33. restorecrtmode();
  34. }
  35. void convex(int x,int y)
  36. {
  37. line(100,100,150,100);
  38. line(150,100,150,150);
  39. line(150,150,100,150);
  40. line(100,150,100,100);
  41. ffill(x,y,0,12,1);
  42. }
  43. void concave(int x,int y)
  44. {
  45. line(100,100,125,125);
  46. line(125,125,150,100);
  47. line(150,100,150,150);
  48. line(150,150,100,150);
  49. line(100,150,100,100);
  50. ffill(x,y,0,12,0);
  51. }
  52. void ffill(int x,int y,int ocolor,int fcolor,int n)
  53. {
  54. int c=getpixel(x,y);
  55. if(n==1)
  56. {
  57. if(c==ocolor)
  58. {
  59. delay(2);
  60. putpixel(x,y,fcolor);
  61. ffill(x+1,y,ocolor,fcolor,0);
  62. ffill(x-1,y,ocolor,fcolor,0);
  63. ffill(x,y+1,ocolor,fcolor,0);
  64. ffill(x,y-1,ocolor,fcolor,0);
  65. }
  66. }
  67. else
  68. {
  69. if(c==ocolor)
  70. {
  71. delay(2);
  72. putpixel(x,y,fcolor);
  73. ffill(x+1,y,ocolor,fcolor,1);
  74. ffill(x-1,y,ocolor,fcolor,1);
  75. ffill(x,y+1,ocolor,fcolor,1);
  76. ffill(x,y-1,ocolor,fcolor,1);
  77. ffill(x+1,y+1,ocolor,fcolor,1);
  78. ffill(x-1,y+1,ocolor,fcolor,1);
  79. ffill(x+1,y-1,ocolor,fcolor,1);
  80. ffill(x-1,y-1,ocolor,fcolor,1);
  81. }
  82. }
  83. }
Add Comment
Please, Sign In to add comment