برنامه محاسبه مساحت چند ضلعی با n ضلع – به زبان ساده

۱۰۶۸ بازدید
آخرین به‌روزرسانی: ۱۰ تیر ۱۴۰۲
زمان مطالعه: ۴ دقیقه
دانلود PDF مقاله
برنامه محاسبه مساحت چند ضلعی با n ضلع – به زبان سادهبرنامه محاسبه مساحت چند ضلعی با n ضلع – به زبان ساده

در این مطلب، روش نوشتن برنامه محاسبه مساحت چند ضلعی با n ضلع بیان و پیاده‌سازی آن در زبان‌های برنامه‌نویسی گوناگون شامل «سی‌پلاس‌پلاس» (++C)، «جاوا» (Java)، «پایتون» (Python)، «سی‌شارپ» (#C) و «پی‌اچ‌پی» (PHP) انجام شده است. مختصات یک چند ضلعی با n راس داده شده است. هدف محاسبه مساحت چند ضلعی است. در اینجا، ترتیب بدین معنا است که مختصات یا به صورت ساعت‌گرد و یا به صورت پادساعت‌گرد از اولین تا آخرین راس داده شده است. مثال زیر برای درک بهتر موضوع، قابل توجه است.

997696
Input :  X[] = {0, 4, 4, 0}, Y[] = {0, 0, 4, 4};
Output : 16

Input : X[] = {0, 4, 2}, Y[] = {0, 0, 4}
Output : 8

مساحت را می‌توان با استفاده از «فرمول بند کفش» (Shoelace Formula) محاسبه کرد.

A=12i=1n1xiy(i+1)+xny1i=1n1x(i+1)yix1yn=1/2[(x1y2+x2y3++xn1yn+xny1)          (x2y1+x3y2++xnyn1+x1yn)]\large \begin{align*} A & =\frac{1}{2}\left |\sum_{i=1}^{n-1}x_iy _{(i+1)}+x_ny_1 – \sum_{i=1}^{n-1}x_{(i+1)}y_i – x _ 1 y _n \right | \\ & = |1/2[(x_{1}y_{2}+x_{2}y_{3}+…+x_{n-1}y_{n}+x_{n}y_{1}) \\ & \;\;\;\;\;-(x_{2}y_{1}+x_{3}y_{2}+…+x_{n}y_{n-1}+x_{1}y_{n})] | \end{align*}

در ادامه، پیاده‌سازی فرمول بالا در زبان‌های برنامه‌نویسی گوناگون انجام شده است.

برنامه محاسبه مساحت چند ضلعی با n ضلع در C++‎

برنامه محاسبه مساحت چند ضلعی با n ضلع در جاوا

برنامه محاسبه مساحت چند ضلعی با n ضلع در پایتون ۳

برنامه محاسبه مساحت چند ضلعی با n ضلع در #C

برنامه محاسبه مساحت چند ضلعی با n ضلع در PHP

خروجی قطعه کدهای بالا برای یال‌های داده شده، به صورت زیر است.

2

دلیل نام‌گذاری فرمول بند کفش

به این رابطه، به دلیل روش مورد استفاده برای ارزیابی آن، فرمول بند کفش (Shoelace Formula) گفته می‌شود.

مثال زیر در این راستا قابل توجه است.

Let the input vertices be
 (0, 1), (2, 3), and (4, 7). 

Evaluation procedure matches with process of tying
shoelaces.

We write vertices as below
  0    1
  2    3
  4    7
  0    1  [written twice]

we evaluate positive terms as below
  0  \  1
  2  \  3
  4  \  7
  0     1  
i.e., 0*3 + 2*7 + 4*1 = 18 

we evaluate negative terms as below
  0     1
  2  /  3
  4  /  7
  0  /  1  
i.e., 0*7 + 4*3 + 2*1 = 14

Area = 1/2 (18 - 14) = 2 

See this for a clearer image.

روش کار فرمول بند کفش

همیشه می‌توان یک چند ضلعی را به چند مثلث تقسیم کرد. فرمول مساحت با گرفتن هر یال AB و محاسبه مساحت (علامت‌گذاری شده) مثلث ABO با راس o و با محاسبه ضرب داخلی (که مساحت متوازی‌الاضلاع را به دست می‌دهد) و تقسیم بر ۲، حاصل می‌شود.

با نزدیک شدن به چند ضلعی، این مثلث‌ها با مساحت مثبت و منفی با یکدیگر هم‌پوشانی خواهند داشت و ناحیه بین راس و چند ضلعی لغو می‌شود و مجموع آن برابر با صفر قرار می‌گیرد، در حالی که فقط مساحت ناحیه درون مثلث مرجع، باقی می‌ماند.

^^

بر اساس رای ۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *