Python Basic — 1: Упражнение 59 с решением
Выпуклый многоугольник — это простой многоугольник, в котором ни один отрезок прямой между двумя точками на границе никогда не выходит за пределы многоугольника. Эквивалентно, это простой многоугольник, внутренняя часть которого является выпуклым множеством. В выпуклом многоугольнике все внутренние углы меньше или равны 180 градусам, в то время как в строго выпуклом многоугольнике все внутренние углы строго меньше 180 градусов.
Напишите программу на Python, которая вычисляет площадь многоугольника. Вершины имеют имена вершина 1, вершина 2, вершина 3, . вершина n в соответствии с порядком соединения ребер.
Однако n равно 3 или более и 20 или менее. Вы также можете использовать следующую формулу для вычисления площади S по длинам a, b и c трех сторон треугольника.
Иллюстрированная презентация:
Входные данные :
Ввод дается в следующем формате.
х1, у1
х2, у2
:
xn, yn
xi, yi — действительные числа, представляющие координаты x и y вершины i соответственно.
Выход:
Область вывода S (действительное число) в одной строке. Вывод может содержать ошибку 0,000001 или менее.
Пример решения :
Код Python:
Блок — схема:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Каков уровень сложности этого упражнения?
random.gauss() function in Python
random module is used to generate random numbers in Python. Not actually random, rather this is used to generate pseudo-random numbers. That implies that these randomly generated numbers can be determined.
random.gauss()
gauss() is an inbuilt method of the random module. It is used to return a random floating point number with gaussian distribution.
Syntax : random.gauss(mu, sigma)
Parameters :
mu : mean
sigma : standard deviation
Returns : a random gaussian distribution floating number
Площадь многоугольника с заданными n упорядоченными вершинами
Даны упорядоченные координаты многоугольника с n вершинами. Найдите площадь многоугольника. Здесь упорядоченное означает, что координаты задаются либо по часовой стрелке, либо против часовой стрелки от первой вершины до последней.
Примеры :
Мы можем вычислить площадь многоугольника, используя формулу Шнеласа .
Ниже приведена реализация вышеприведенной формулы.
// C ++ программа для оценки площади многоугольника с использованием
// формула шнурка
#include
using namespace std;
// (X [i], Y [i]) — координаты i-й точки.
double polygonArea( double X[], double Y[], int n)
double area = 0.0;
// Рассчитать значение формулы шнурка
for ( int i = 0; i
area += (X[j] + X[i]) * (Y[j] — Y[i]);
j = i; // j — предыдущая вершина i
// Возвращаем абсолютное значение
return abs (area / 2.0);
// Программа драйвера для проверки вышеуказанной функции
int n = sizeof (X)/ sizeof (X[0]);
// Java-программа для оценки области
// многоугольника по формуле шнурка
// (X [i], Y [i]) — координаты i-й точки.
public static double polygonArea( double X[], double Y[],
double area = 0.0 ;
// Рассчитать значение формулы шнурка
for ( int i = 0 ; i
area += (X[j] + X[i]) * (Y[j] — Y[i]);
// j — предыдущая вершина i
// Возвращаем абсолютное значение
return Math.abs(area / 2.0 );
public static void main (String[] args)
System.out.println(polygonArea(X, Y, n));
>
// Этот код предоставлен Sunnnysingh
# python3 программа для оценки
# площадь многоугольника, использующего
# формула шнурка
# (X [i], Y [i]) — координаты i-й точки.
def polygonArea(X, Y, n):
# Рассчитать значение формулы шнурка
for i in range ( 0 ,n):
area + = (X[j] + X[i]) * (Y[j] — Y[i])
j = i # j — предыдущая вершина i
# Вернуть абсолютное значение
return int ( abs (area / 2.0 ))
# Программа драйвера для проверки вышеуказанной функции
print (polygonArea(X, Y, n))
# Этот код предоставлен
# Смита Динеш Семвал
// C # программа для оценки площади
// многоугольника по формуле шнурка
// (X [i], Y [i]) — координаты i-й точки.
public static double polygonArea( double [] X,
double [] Y, int n)
double area = 0.0;
// Рассчитать значение формулы шнурка
for ( int i = 0; i
area += (X[j] + X[i]) * (Y[j] — Y[i]);
// j — предыдущая вершина i
// Возвращаем абсолютное значение
return Math.Abs(area / 2.0);
public static void Main()
Console.WriteLine(polygonArea(X, Y, n));
// Этот код предоставлен vt_m.
// PHP программа для оценки площади
// полигон, использующий формулу шнурка
// (X [i], Y [i])
// координаты i-й точки.
function polygonArea( $X , $Y , $n )
for ( $i = 0; $i $n ; $i ++)
$area += ( $X [ $j ] + $X [ $i ]) *
// j — предыдущая вершина i
// Возвращаем абсолютное значение
return abs ( $area / 2.0);
echo polygonArea( $X , $Y , $n );
// Этот код предоставлен ajit
?>
Выход :
Почему это называется формула шнурка?
Формула называется так из-за того, как мы ее оцениваем.
Пример :
Как это работает?
Мы всегда можем разделить многоугольник на треугольники. Формула площади получается путем взятия каждого ребра AB и вычисления (подписанной) площади треугольника ABO с вершиной в начале O, путем получения перекрестного произведения (которое дает площадь параллелограмма) и деления на 2. Как один обернут вокруг полигона, эти треугольники с положительной и отрицательной области будут перекрываться, и области между началом координат и полигона будет отменен, и сумма в 0, в то время как только область внутри опорного треугольника остается. [Источник: Wiki ]
Эта статья предоставлена Уткаршем Триведи. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме


