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

Программа должна находить площадь произвольного многоугольника - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что означает сточка? http://www.cyberforum.ru/cpp-beginners/thread1065411.html
Объясните пожалуйста, что означает эта строчка...желательно с точностью до каждого слова))) Спасибо заранее)) Typedef double* stdcall (*CreateVectorType)(int rows);
C++ Создать структуру Треугольник. Фунциональность: периметр, площадь Здравствуйте, уважаемые!!! Уже третий день :wall: бьюсь над решением задачи. Задача следующая: создать программу вычисляющую через функции площадь и периметр треугольника с помощью параметров вершин вводимых с клавиатуры. Необходимо также применение структуры Треугольник. Вот что у меня примерно получилось: #include <iostream> using namespace std; #include "Triangle.h" struct Point { http://www.cyberforum.ru/cpp-beginners/thread1065398.html
C++ Интегрирование 3-оного итеграла
Добрый вечер. Посмотрите пожалуйста, правильно ли я описал область куда падает точка, потому что с ответом расходится. Метод монте-карло! Вот само задание: #include <stdio.h>; #include <math.h>
C++ Тайлинг в SDL2.0
Привет, не могу разобраться с примером тайлинга в SDL есть некий lazy.map его содержимое: 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 11 04 04 04 04 04 04 04 04 04 04 05 01 02 00 01 10 03 03 03 03 03 03 03 03 03 03 06 02 00 01 02 10 03 08 08 08 08 08 08 08 03 03 06 00 01 02 00 10 06 00 01 02 00 01 02 00 10 03 06 01 02 00 01...
C++ Создать новый массив, найти наименьший элемент 3-го столбца, поменять местами наименьший элемент 3-го столбца и элемент a23 http://www.cyberforum.ru/cpp-beginners/thread1065384.html
1 Создать новый одномерный массив , каждый элемент которого равен среднему арифметическому элементов соответствующей строки данной матрицы. 2 Найти наименьший элемент 3-го столбца. 3 Поменять местами наименьший элемент 3-го столбца и элемент a23. Вот моя программа // ConsoleApplication1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream>...
C++ не могу разобраться рекурсией) Напишите программу, которая запрашивает число и показатель степени. Напишите рекурсивную функцию, которая возводит число в степень путем многократного умножения числа на самое себя, т.е. если число равно 2, а показатель степени равен 4, то эта функция должна возвратить число 16. #include <iostream> using namespace std; unsigned int myFunc(unsigned int x,unsigned int y); int main() { подробнее

Показать сообщение отдельно
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
26.01.2014, 14:51     Программа должна находить площадь произвольного многоугольника
Найти площадь треугольника ABC можно, вычислив векторное произведение векторов AB и AC. Оно равно +2*S или -2*S.
Разобьём многоугольник на треугольники - см. рис.
Вычислим векторные произведения A0A1 на A0A2, A0A2 на A0A3, и т.д.
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
55
56
#include <stdio.h>
 
struct point
{
    float x, y;
};
 
// n - число сторон, A[] - координаты вершин 
float square_of_polygon( const int n, const point A[] )
{
    if( n <= 0  || A == 0 )
        return 0.0;
 
    typedef point vect;
    vect * diag = 0;
    diag = new vect[n];
    if( ! diag ) 
        return 0.0;
 
    // diag[i] это векторы A0A0, A0A1, A0A2, A0A3, ...
    for( int i=0; i<n; ++i ) 
    {
        diag[i].x = A[i].x - A[0].x;
        diag[i].y = A[i].y - A[0].y;
    }
 
    // вычисление площади 
    float S = 0.0;
    for( int i=2; i<n; ++i ) 
    {
        // площадь параллелограмма, стороны 
        // которого - векторы diag[i], diag[i-1]
        //
        // вычисляем векторное произведение diag[i] и diag[i-1]
        //
        S += diag[i].x * diag[i-1].y  -  diag[i].y * diag[i-1].x ;
    }
    S /= 2.0;
    if( S < 0 ) S = -S;
 
    // освобождаем память 
    delete[] diag;
 
    return S;
}
int main()
{
    point P[] = { { 4, 2 }, { 6, 3 }, { 5, 5 }, { 3, 4 } };
    int n = sizeof( P ) / sizeof( P[0] );
 
    float sq = square_of_polygon( n, P );
    printf( "\n square of polygon :  %10.3f \n", sq );
 
    getchar();
    return 0;
}
Миниатюры
Программа должна находить площадь произвольного многоугольника  
 
Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru