2 / 2 / 0
Регистрация: 16.11.2010
Сообщений: 24
1

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

23.03.2011, 11:01. Показов 7531. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны натуральное число n, действительные числа x1, y1, x2, y2,…, xn,yn. Найти площадь
n-угольника,вершины которого при некотором последовательном обходе имеют координаты (x1, y1), (x2, y2),…, (xn, yn). (Определить процедуру вычисления площади треугольника по координатам его вершин.)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2011, 11:01
Ответы с готовыми решениями:

Определить процедуру вычисления площади треугольника по координатам его вершин
Даны натуральное число n, действительные числа x1, y1, x2, y2,..., xn, yn. Найти площадь n...

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

Нахождение площади параллелограмма, треугольника и объема параллелепипеда, тетраэдра по координатам вершин
Нахождение площади параллелограмма, треугольника и объема параллелепипеда, тетраэдра по координатам...

Определить функцию вычисления площади треугольника по трем его сторонами, заданными действительными числами
Условие: Даны действительные числа a, b, c, d. Найти площадь шестиугольника, изображенного на...

17
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 11:06 2
Решение содержится в постановке задачи: Разбиваешь многоугольник на треугольники, считаешь их площади и суммируешь.
(Вычисление площади треугольника выносишь в функцию.)
0
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 11:21 3
Не простая задача. http://www.opita.net/node/12
1
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 11:29 4
Возможность триангуляции плоского многоугольника математически доказана и, соответственно, реализуема.

Если не издеваться, то:
Разбить произвольный многоугольник на множество выпуклых многоугольников. О минимизации количества выпуклых многоугольников ведь речи нет, так что задача простая.
Разбить каждый выпуклый многоугольник на треугольники (веером).
Считать площади.
Сложить.
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
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;
}
1
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 18:11 6
Цитата Сообщение от Deviaphan Посмотреть сообщение
Возможность триангуляции плоского многоугольника математически доказана и, соответственно, реализуема.
Разбить произвольный многоугольник на множество выпуклых многоугольников. О минимизации количества выпуклых многоугольников ведь речи нет, так что задача простая.
Разбить каждый выпуклый многоугольник на треугольники (веером).
Считать площади.
Сложить.
Это кому как, мне на эту тему даже думать показалось сложно.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:19 7
Mayonez, я не вчитывался, но похоже, что только для выпуклых многоугольников метод работает.
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:21 8
Если многоугольник простой, то вполне можно воспользоваться формулой, приведенной здесь: Площадь простого n-угольника Жаль, что про эту формулу почти везде уже забыли.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:23 9
А если многоугольник - квадрат, то...
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:38 10
То значит, что квадрат - тоже простой многоугольник, а значит формула работает. Или вы о чём-то ином?
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:41 11
О сложности вычисления площади квадрата...
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:42 12
Согласен, что не оптимально совсем выйдет, но за общность метода приходится платить, а тут как я понимаю задача имеет как раз обобщенный вид, не одни же квадраты считаем
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
23.03.2011, 18:42 13
Deviaphan, для невыпуклых тоже за счет отрицательной площади
1
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:46 14
Круто! Не знал.) Сохраню алгоритмик, на всякий пожарный.)
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
23.03.2011, 18:48 15
главное - без самопересечений т.е. простой. Порядок обхода тоже неважен
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
23.03.2011, 18:49 16
Deviaphan, кстати, поглядел код Mayonez, как раз этот метод, о котором я говорил,ведь и используется
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
23.03.2011, 18:51 17
Цитата Сообщение от Deviaphan Посмотреть сообщение
Возможность триангуляции плоского многоугольника математически доказана и, соответственно, реализуема.
Не нужно делать триангуляцию.
Выбираем любую точку.
Переберем все ребра, прибавляя ориентированную площадь треугольника - получаем ответ

Добавлено через 57 секунд
Ma3a, да, именно
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.03.2011, 18:51 18
Я уже алгоритм себе скопировал, прозапас.
Но триангулировать веселее.) И муторнее.
0
23.03.2011, 18:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2011, 18:51
Помогаю со студенческими работами здесь

Описать функцию находящую периметр треугольника по координатам его вершин
Всем привет, нужно помощь Описать функцию Perim(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую...

Вычислить периметр и площадь треугольника по заданным координатам его вершин
Помогите решить задачу! Вычислить периметр и площадь треугольника по заданным координатам его...

По координатам трех вершин треугольника найти его периметр и площадь
1) Даны координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и...

Описать функцию находящую периметр треугольника по координатам его вершин
Всем привет, я начинающий программист, нужна ваша помощь с такой вот задачкой: Описать функцию...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru