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

۱۲۸۳
۱۴۰۲/۰۴/۱۰
۴ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

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

برنامه محاسبه مساحت چند ضلعی با n ضلع – به زبان سادهبرنامه محاسبه مساحت چند ضلعی با 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
مطالب مرتبط
نظر شما چیست؟

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