কম্পিউটার

সি গ্রাফিক্স ব্যবহার করে ফ্লাড ফিল অ্যালগরিদম


ধারণা

একটি প্রদত্ত আয়তক্ষেত্রের ক্ষেত্রে, আমাদের কাজ হল ফ্লাড ফিল অ্যালগরিদম প্রয়োগ করে এই আয়তক্ষেত্রটি পূরণ করা৷

ইনপুট

rectangle(left = 50, top = 50, right= 100, bottom = 100)
floodFill( a = 55, b = 55, NewColor = 12, OldColor = 0)

আউটপুট

সি গ্রাফিক্স ব্যবহার করে ফ্লাড ফিল অ্যালগরিদম

পদ্ধতি

// পূর্ববর্তী রঙ 'OldColor' কে '(a, b)' এবং (a, b) এর আশেপাশের সমস্ত পিক্সেলকে নতুন রঙ 'NewColor' এবং ফ্লাডফিল(a, b, NewColor, OldColor) দিয়ে প্রতিস্থাপন করার জন্য একটি পুনরাবৃত্ত ফাংশন

  • যদি a বা b পর্দার বাইরে থাকে, তাহলে ফিরে আসুন।

  • যদি getpixel(a, b) এর রঙ ওল্ড কালারের মত হয়, তাহলে

  • উপরে, নীচে, ডান এবং বাম জন্য পুনরাবৃত্তি করুন।

    ফ্লাডফিল(a+1, b, NewColor, OldColor);<

    ফ্লাডফিল(a-1, b, Newcolor, OldColor);

    ফ্লাডফিল(a, b+1, Newcolor, OldColor);

    ফ্লাডফিল(a, b-1, Newcolor, OldColor);

উদাহরণ

// Shows program to fill polygon using floodfill
// algorithm
#include <graphics.h>
#include <stdio.h>
// Describes flood fill algorithm
void flood(int x1, int y1, int new_col, int old_col){
   // Checking current pixel is old_color or not
   if (getpixel(x1, y1) == old_col) {
      // Putting new pixel with new color
      putpixel(x1, y1, new_col);
      // Shows recursive call for bottom pixel fill
      flood(x1 + 1, y1, new_col, old_col);
      //Shows recursive call for top pixel fill
      flood(x1 - 1, y1, new_col, old_col);
      // Shows recursive call for right pixel fill
      flood(x1, y1 + 1, new_col, old_col);
      // Shows recursive call for left pixel fill
      flood(x1, y1 - 1, new_col, old_col);
   }
}
int main(){
   int gd1, gm1 = DETECT;
   // Initializing graph
   initgraph(&gd1, &gm1, "");
   //Shows rectangle coordinate
   int top1, left1, bottom1, right1;
   top1 = left1 = 50;
   bottom1 = right1 = 300;
   // Shows rectangle for print rectangle
   rectangle(left1, top1, right1, bottom1);
   // Fills start cordinate
   int x1 = 51;
   int y1 = 51;
   // Shows new color to fill
   int newcolor = 12;
   // Shows old color which you want to replace
   int oldcolor = 0;
   // Calling for fill rectangle
   flood(x1, y1, newcolor, oldcolor);
   getch();
   return 0;
}

আউটপুট

সি গ্রাফিক্স ব্যবহার করে ফ্লাড ফিল অ্যালগরিদম


  1. C-তে fillpoly() ফাংশন

  2. সি গ্রাফিক্স ব্যবহার করে ফ্লাড ফিল অ্যালগরিদম

  3. C++ এ কম্পিউটার গ্রাফিক্সে পয়েন্ট ক্লিপিং অ্যালগরিদম

  4. imagefilltoborder() (GD) ফাংশন ব্যবহার করে PHP-তে নির্দিষ্ট রঙে ফ্লাড ফিল।