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

Площадь выпуклого многоугольника

22.01.2013, 20:01. Показов 3170. Ответов 2
Метки нет (Все метки)

Площадь выпуклого многоугольника. Даны натуральное число n, действительные числа x1, y1, x2, y2,..., xn, yn. Найти площадь выпуклого n-угольника, вершины которого при некотором последовательном обходе имеют координаты (x1, y1), (x2, y2), ..., (xn, yn). Определить подпрограмму вычисления площади треугольника по
координатам его вершин.
Площадь многоугольника хочу найти через суммы площадей треугольников.
Начал делать, а дальше застопорилось, никак не пойму что дальше. Как я понял нужно из массива брать координаты.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>
float lin (float x1; float y1; float x2; float y2)
     {return sqrt (pow((x2-x1),2)+pow((y2-y1),2));
     }
float strg (float x1; float y1; float x2; float y2; float x3; float y3)
{float a,b,c,p;
a=lin (x1,y1,x2,y2);
b=lin (x2,y2,x3,y3);
c=lin (x1,y1,x3,y3);
p=(a+b+c)/2;
return sqrt (p*(p-a)*(p-b)*(p-c);
//здесь не понятно, что писать
}
float mas [100][2];
void main ()
{float ...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2013, 20:01
Ответы с готовыми решениями:

Разрезание выпуклого многоугольника
Здравствуйте программисты! Мне необходимо написать программу, которая бы разрезала выпуклый...

Площадь выпуклого прямоугольника
. Площадь треугольника, заданного координатами своих вершин, находится по формуле S = 0.5 * |x1y2...

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

Площадь многоугольника
Многоугольник на плоскости задан целочисленными координатами своих N вершин в декартовой системе...

2
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 8
23.01.2013, 20:31  [ТС] 2
Я не понимаю, как мне сделать, чтобы программа выбирала координаты из массива.
0
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
23.01.2013, 22:41 3
Лучший ответ Сообщение было отмечено blax777 как решение

Решение

както так

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
typedef struct{
    float x, y;
} Point2f;
 
float distance2f(Point2f*, Point2f*);
float triangleSqare2f(Point2f*, Point2f*, Point2f*);
float polygonSquare2fv(Point2f*, int);
 
int main(int argc, char** argv) {
    srand(time(0));
 
    int i, n;
    printf("Enter n: "); scanf("%d", &n);
    
    Point2f* polygon = (Point2f*)calloc(n, sizeof(Point2f));
    
    for(i = 0; i < n; i++){
        printf("Point %d.x: ", i + 1); scanf("%f", &polygon[i].x);
        printf("Point %d.y: ", i + 1); scanf("%f", &polygon[i].y);
    }
    
    printf("Polygon square: %f\n", polygonSquare2fv(polygon, n));
    
    free(polygon);
    return 0;
}
 
float distance2f(Point2f* p1, Point2f* p2){
    return sqrtf(pow(p1->x - p2->x, 2) + pow(p1->y - p2->y, 2));
}
 
float triangleSqare2f(Point2f* p1, Point2f* p2, Point2f* p3){
    float
        a = distance2f(p1, p2),
        b = distance2f(p2, p3),
        c = distance2f(p3, p1);
    float p = (a + b + c) / 2.0;
    
    return sqrtf(p*(p - a) * (p - b) * (p - c));
}
 
float polygonSquare2fv(Point2f* points, int n){
    float square = 0.0;
    int i;
    for(i = 1; i < n - 1; i++)
        square += triangleSqare2f(points + 0, points + i, points + i + 1);
    
    return square;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2013, 22:41
Помогаю со студенческими работами здесь

Написать программу для вычисления площади выпуклого четырехугольника ABCD
Написать программу для вычисления площади выпуклого четырехугольника ABCD, заданного длинами сторон...

Площадь выпуклого многоугольника
Доброго времени суток! Собственно, задача звучит как: &quot;Расчет площади выпуклого многоугольника при...

Площадь выпуклого многоугольника.
Выпуклый многоугольник задан последовательностью координат своих вершин в порядке обхода....

Площадь выпуклого многоугольника
Дан выпуклый многоугольник, с заданной последовательностью координат своих вершин в порядке обхода...


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

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

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