Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

C++ Найти площадь вогнутого многоугольника
Площадь многоугольника C++
Вычислить площадь многоугольника C++
Площадь многоугольника C++
Многоугольник на плоскости задан целочисленными координатами своих N вершин в декартовой системе координат (найти площадь многоугольника) C++
C++ Вычислить площадь простого многоугольника
C++ Найти площадь многоугольника, заданного перечислением координат вершин в порядке обхода его границы
Площадь выпуклого многоугольника методом триангуляции C++
Вычислить площадь многоугольника C++
Площадь многоугольника C++
C++ Найти площадь правильного многоугольника (как сделать, чтобы тангенс считался в градусах?)
C++ Вычислить площадь многоугольника с использованием функции,которая определяет площадь по координатам его вершин

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
338 / 369 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
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;
}
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
10.02.2014, 17:48  [ТС]     найти площадь многоугольника #3
можете рассказать алгоритм нахождения вкраце?
egor2116
338 / 369 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
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 минуты
Единственное ограничение стороны многоугольника не должны пересикатся
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 умножаем?НЕ совсем просто алгоритм понимаю
Yandex
Объявления
15.02.2014, 17:59     найти площадь многоугольника
Ответ Создать тему
Опции темы

Текущее время: 00:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru