স্লিকার অ্যালগরিদম ব্যবহার করে বহুভুজের ক্ষেত্রফল খুঁজে বের করার জন্য এখানে একটি C++ প্রোগ্রাম রয়েছে যা বহুভুজের ক্ষেত্রফল খুঁজে বের করতে ত্রিভুজ এড়িয়ে যায়।
এটি স্বাভাবিক গাণিতিক রীতি অনুমান করে যে ধনাত্মক y পয়েন্ট উপরের দিকে। কম্পিউটার সিস্টেমে যেখানে পজিটিভ y নিচের দিকে থাকে, সেখানে সবচেয়ে সহজ কাজটি হল "ধনাত্মক y ডাউন" স্থানাঙ্ক ব্যবহার করে ঘড়ির কাঁটার বিপরীতে শীর্ষবিন্দুগুলি তালিকাভুক্ত করা। দুটি প্রভাব তারপর একটি ইতিবাচক এলাকা তৈরি করতে বাতিল করা হয়।
ফাংশন এবং সিউডোকোড
অ্যালগরিদম
Begin function Area() is used to calculate area of a polygon take the polygon p as argument. for i = 0 to p.n-1 initialize j = (i + 1) % p.n; calculate t =t+((p.p[i].b * p.p[j].b) - (p.p[j].a * p.p[i].b.)) return t/2 End
উদাহরণ কোড
#include <iostream> using namespace std; const int MAX = 200; class P// to declare variables { private: public: double a, b; }; class Polygon { private: public: P p[MAX]; int n; Polygon()//take the coordinates of each point of polygon { for (int i = 0; i < MAX; i++) P p[i]; } }; double Area(Polygon p)//area calculation { double t = 0; for (int i = 0; i < p.n; i++) { int j = (i + 1) % p.n; t += (p.p[i].b * p.p[j].b) - (p.p[j].a * p.p[i].b); } return t / 2; } int main(int argc, char **argv) { Polygon p; cout << "Enter the number of points in Polygon: "; cin >>p.n; cout << "Enter the coordinates of each point: "; for (int i = 0; i < p.n; i++) { cin >>p.p[i].a; cin >>p.p[i].b; } double a = Area(p); if (a >0)//if area>0 cout << "The Area of Polygon with " << p.n << " points using Slicker Algorithm is : " << a; else cout << "The Area of Polygon with " << p.n << " points using Slicker Algorithm is : " << (a * -1); }
আউটপুট
Enter the number of points in Polygon: 6 Enter the coordinates of each point: 1 1 2 2 3 3 4 4 5 5 6 7 The Area of Polygon with 6 points using Slicker Algorithm is : 2.5