Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
#1

Найти площадь многоугольника - C++

09.02.2014, 16:34. Просмотров 2446. Ответов 4
Метки нет (Все метки)

найти площадь многоугольника по заданным точкам его вершин(точки, даны по обходу многоугольника по часовой стрелке).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти площадь многоугольника (C++):

Найти площадь вогнутого многоугольника - C++
пожалуйста, народ, помогите (подскажите) как найти площадь вогнутого многоугольника? при условии,что вершин больше 3.

Найти площадь правильного многоугольника (как сделать, чтобы тангенс считался в градусах?) - C++
Передающиеся параметры: а-длина стороны,н - количество сторон. Проблеба в том что тангенс считает в радианах из-за этого получается не...

Вычислить площадь многоугольника с использованием функции,которая определяет площадь по координатам его вершин - C++
Народ помогите пож нужно очень срочно. совсем запутался с этим задание,буду благодарен за помощь. Вычислить площадь многоугольника с...

Найти площадь многоугольника, заданного перечислением координат вершин в порядке обхода его границы - C++
Найти площадь многоугольника, заданного перечислением координат вершин в порядке обхода его границы.

Многоугольник на плоскости задан целочисленными координатами своих N вершин в декартовой системе координат (найти площадь многоугольника) - C++
Здравствуйте форумчане! Необходим совет) собственно задача: Многоугольник на плоскости задан целочисленными координатами своих N...

Площадь многоугольника - C++
Всем добрый вечер! Есть задача: Заданы координаты n последовательных вершин многоугольника. Определить его площадь. Входные данные...

4
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,133
10.02.2014, 16:58 #2
Как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <algorithm>
#include <vector>
#include <utility>
 
int main()
{
  const size_t countPair = 3;
  int x, y, S = 0;
  std::vector< std::pair <int, int> > polygon(countPair);
  
  for(size_t i = 0; i < countPair; ++i)
  {
     std::cout << "Input coordination X : ";  std::cin >> x;
     std::cout << "Input coordination Y : ";  std::cin >> y;
     polygon.push_back(std::pair <int, int>(x, y));  
  }
  
  for(size_t i = 0; i < polygon.size(); ++i)
  {
    if(i != polygon.size() - 1)
     S += (polygon[i].first * polygon[i + 1].second - polygon[i].second * polygon[i + 1].first);
    else
     S += (polygon[i].first * polygon[0].second - polygon[i].second * polygon[0].first);        
  }
  
  std::cout << " S = " << abs(S) << std::endl;
  
  system("PAUSE");
  return 0;
}
1
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
10.02.2014, 17:48  [ТС] #3
можете рассказать алгоритм нахождения вкраце?
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,133
10.02.2014, 17:58 #4
x1y1; x2y2; x3y3 .. xNyN
s = 1/2 *(x1*y2 - x2*y1 + ... + xN*y1 - xN*y1);

у меня ошибка небольшая
замените строку
C++
1
 std::cout << " S = " << abs(S) << std::endl;
на
C++
1
 std::cout << " S = " << (abs(S) * 0.5)<< std::endl;
Добавлено через 2 минуты
Единственное ограничение стороны многоугольника не должны пересикатся
1
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
15.02.2014, 17:59  [ТС] #5
x1y1; x2y2; x3y3 .. xNyN
s = 1/2 *(x1*y2 - x2*y1 + ... + xN*y1 - xN*y1);


там точно xN*y1-xN*y1, почему в начале тогда на y2 умножаем?НЕ совсем просто алгоритм понимаю
0
15.02.2014, 17:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2014, 17:59
Привет! Вот еще темы с ответами:

Площадь многоугольника - C++
Необходимо вычислить площади двух многоугольников(ну а в дальнейшем проверить, лежит ли один из них в другом, пока мне это не надо) по...

Площадь многоугольника - C++
Найти площадь невыпуклого многоугольника(n-угольник). Входные данные: координаты точек. На output вывести площадь.

Вычислить площадь многоугольника - C++
Не могу понять почему VS 2015 всегда показывает площадь равную 0, в то время как dev C++ вычисляет её нормально. ...

Вычислить площадь многоугольника - C++
Задача 33* Выпуклый многоугольник задан координатами своих вершин. Вершины упорядочены. Вычислить площадь многоугольника. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.