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

Определить процедуру вычисления площади треугольника по координатам его вершин - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.84
Hamelion)))
2 / 2 / 0
Регистрация: 16.11.2010
Сообщений: 24
23.03.2011, 11:01     Определить процедуру вычисления площади треугольника по координатам его вершин #1
Даны натуральное число n, действительные числа x1, y1, x2, y2,…, xn,yn. Найти площадь
n-угольника,вершины которого при некотором последовательном обходе имеют координаты (x1, y1), (x2, y2),…, (xn, yn). (Определить процедуру вычисления площади треугольника по координатам его вершин.)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2011, 11:01     Определить процедуру вычисления площади треугольника по координатам его вершин
Посмотрите здесь:

C++ Определить процедуру вычисления площади треугольника по координатам его вершин
По координатам трех вершин некоторого треугольника найти его площадь и периметр. C++
Определить вид треугольника по координатам вершин C++
Определить функцию вычисления площади треугольника по трем его сторонами, заданными действительными числами C++
C++ Вычислить периметр и площадь треугольника по заданным координатам его вершин
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 11:06     Определить процедуру вычисления площади треугольника по координатам его вершин #2
Решение содержится в постановке задачи: Разбиваешь многоугольник на треугольники, считаешь их площади и суммируешь.
(Вычисление площади треугольника выносишь в функцию.)
Alex1234
 Аватар для Alex1234
12 / 12 / 0
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 11:21     Определить процедуру вычисления площади треугольника по координатам его вершин #3
Не простая задача. http://www.opita.net/node/12
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 11:29     Определить процедуру вычисления площади треугольника по координатам его вершин #4
Возможность триангуляции плоского многоугольника математически доказана и, соответственно, реализуема.

Если не издеваться, то:
Разбить произвольный многоугольник на множество выпуклых многоугольников. О минимизации количества выпуклых многоугольников ведь речи нет, так что задача простая.
Разбить каждый выпуклый многоугольник на треугольники (веером).
Считать площади.
Сложить.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.03.2011, 16:44     Определить процедуру вычисления площади треугольника по координатам его вершин #5
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
32
33
#include <iostream>
#include <vector>
 
using namespace std;
 
float sq (vector <pair <int, int> > &dil)
{
    float res = 0;                  
    for (unsigned i = 0; i < dil.size(); i++)
    {
       pair <int, int> one, two;     
        one = i ? dil[i-1] : dil.back();
        two = dil[i];               
        res += (one.first - two.first) * (one.second + two.second)                      
    }
    return fabs (res) / 2;            
}
 
int main()
{
   vector <pair <int, int> > dil;     
   int N;                 
   cin >> N;                       
   while (N)
   {
      int x, y;
      cin >> x >> y;
      dil.push_back(make_pair(x, y)); 
      N--;
   }
    cout << sq(dil) << endl;
   return 0;
}
Alex1234
 Аватар для Alex1234
12 / 12 / 0
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 18:11     Определить процедуру вычисления площади треугольника по координатам его вершин #6
Цитата Сообщение от Deviaphan Посмотреть сообщение
Возможность триангуляции плоского многоугольника математически доказана и, соответственно, реализуема.
Разбить произвольный многоугольник на множество выпуклых многоугольников. О минимизации количества выпуклых многоугольников ведь речи нет, так что задача простая.
Разбить каждый выпуклый многоугольник на треугольники (веером).
Считать площади.
Сложить.
Это кому как, мне на эту тему даже думать показалось сложно.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:19     Определить процедуру вычисления площади треугольника по координатам его вершин #7
Mayonez, я не вчитывался, но похоже, что только для выпуклых многоугольников метод работает.
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:21     Определить процедуру вычисления площади треугольника по координатам его вершин #8
Если многоугольник простой, то вполне можно воспользоваться формулой, приведенной здесь: Площадь простого n-угольника Жаль, что про эту формулу почти везде уже забыли.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:23     Определить процедуру вычисления площади треугольника по координатам его вершин #9
А если многоугольник - квадрат, то...
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:38     Определить процедуру вычисления площади треугольника по координатам его вершин #10
То значит, что квадрат - тоже простой многоугольник, а значит формула работает. Или вы о чём-то ином?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:41     Определить процедуру вычисления площади треугольника по координатам его вершин #11
О сложности вычисления площади квадрата...
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:42     Определить процедуру вычисления площади треугольника по координатам его вершин #12
Согласен, что не оптимально совсем выйдет, но за общность метода приходится платить, а тут как я понимаю задача имеет как раз обобщенный вид, не одни же квадраты считаем
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.03.2011, 18:42     Определить процедуру вычисления площади треугольника по координатам его вершин #13
Deviaphan, для невыпуклых тоже за счет отрицательной площади
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:46     Определить процедуру вычисления площади треугольника по координатам его вершин #14
Круто! Не знал.) Сохраню алгоритмик, на всякий пожарный.)
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.03.2011, 18:48     Определить процедуру вычисления площади треугольника по координатам его вершин #15
главное - без самопересечений т.е. простой. Порядок обхода тоже неважен
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:49     Определить процедуру вычисления площади треугольника по координатам его вершин #16
Deviaphan, кстати, поглядел код Mayonez, как раз этот метод, о котором я говорил,ведь и используется
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.03.2011, 18:51     Определить процедуру вычисления площади треугольника по координатам его вершин #17
Цитата Сообщение от Deviaphan Посмотреть сообщение
Возможность триангуляции плоского многоугольника математически доказана и, соответственно, реализуема.
Не нужно делать триангуляцию.
Выбираем любую точку.
Переберем все ребра, прибавляя ориентированную площадь треугольника - получаем ответ

Добавлено через 57 секунд
Ma3a, да, именно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2011, 18:51     Определить процедуру вычисления площади треугольника по координатам его вершин
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:51     Определить процедуру вычисления площади треугольника по координатам его вершин #18
Я уже алгоритм себе скопировал, прозапас.
Но триангулировать веселее.) И муторнее.
Yandex
Объявления
23.03.2011, 18:51     Определить процедуру вычисления площади треугольника по координатам его вершин
Ответ Создать тему
Опции темы

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