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


در این مطلب، روش نوشتن برنامه محاسبه مساحت چند ضلعی با n ضلع بیان و پیادهسازی آن در زبانهای برنامهنویسی گوناگون شامل «سیپلاسپلاس» (++C)، «جاوا» (Java)، «پایتون» (Python)، «سیشارپ» (#C) و «پیاچپی» (PHP) انجام شده است. مختصات یک چند ضلعی با n راس داده شده است. هدف محاسبه مساحت چند ضلعی است. در اینجا، ترتیب بدین معنا است که مختصات یا به صورت ساعتگرد و یا به صورت پادساعتگرد از اولین تا آخرین راس داده شده است. مثال زیر برای درک بهتر موضوع، قابل توجه است.
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) محاسبه کرد.
در ادامه، پیادهسازی فرمول بالا در زبانهای برنامهنویسی گوناگون انجام شده است.
برنامه محاسبه مساحت چند ضلعی با 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 و با محاسبه ضرب داخلی (که مساحت متوازیالاضلاع را به دست میدهد) و تقسیم بر ۲، حاصل میشود.
با نزدیک شدن به چند ضلعی، این مثلثها با مساحت مثبت و منفی با یکدیگر همپوشانی خواهند داشت و ناحیه بین راس و چند ضلعی لغو میشود و مجموع آن برابر با صفر قرار میگیرد، در حالی که فقط مساحت ناحیه درون مثلث مرجع، باقی میماند.
- مجموعه آموزشهای دروس ریاضیات
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- مجموعه آموزشهای ساختمان داده و طراحی الگوریتم
- مساحت مثلث — به زبان ساده
- متوازیالاضلاع، تعریف و محاسبات آن در هندسه — به زبان ساده
^^