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

Нахождение площади через координаты треугольника - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Абстрактный класс чисел http://www.cyberforum.ru/cpp-beginners/thread336728.html
Нужно создать абстрактный класс чисел с виртуальными методами - арифметическими операциями. У этого класса 2 наследника - комплексные числа и дроби. Я написал решение этой задачи, но оно мне кажется. Скажите, есть ли другие способы и как можно было сделать это лучше. Вот мой код: #include <iostream> #include <string> #include <math.h> const double EPS = 1e-4;
C++ Рекурсия в различных компиляторах Доброго времени суток. Задача: дано целое число n, нужно получить его битовое представление, развернуть его, и то, что получилось перевести обратно в десятичную систему счисления. Пример:n = 4, ответ - 1 n = 6, ответ - 3. Решил ее через циклы, прошла все тесты, поэтому решение меня не интересует. Также написал красивую на мой взгляд рекурсию, которая отлично работает на gcc. #include... http://www.cyberforum.ru/cpp-beginners/thread336725.html
C++ Ввод данных
В общем есть переменная int year; Юзер должен ввести значение переменной, но мне нужно чтобы он мог ввести максимум четырехзначное число, тоесть как бы ограничить количество вводимых символов
Графы C++
Прочитал про обход графа в глубину, посмотрел реализацию, и тут вопрос а как можно использовать этот обход в глубину?
C++ Матрица Изменение http://www.cyberforum.ru/cpp-beginners/thread336665.html
Здравствуйте! Просьба такая: "Приведите пожалуйста пример как можно расширять границы матрицы". Например из матрицы 3х3 сделать матрицу 3х4 и новый столбец добавленный сразуже обнулить. Я думаю что с помощью replace но опять такие нужен пример с хорошими пояснениями.
C++ взять адрес переменной если & стоит перед переменной, то это читается как - " взять адрес этой переменной" а если он стоит после ? подробнее

Показать сообщение отдельно
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
28.07.2011, 13:47     Нахождение площади через координаты треугольника
ВАРИАНТ 1

Точка D находится внутри треугольника ABC, если сума площадей тругольников ABD, BCD и ADC равна площади ABC.
Нахождение площади через координаты треугольника
В противном случае эта сума больше (см. рисунки)
Нахождение площади через координаты треугольника
Чтобы найти площадь воспользуемся псевдоскалярным произведением векторов. Произведение вычисляется как величина следующего определителя:
Название: det.png
Просмотров: 3801

Размер: 1.9 Кб
Раскроем его и получим выражение, на котором построена функция
C++
1
int area(pt a, pt b, pt c)
Нахождение площади через координаты треугольника
Далее в цикле проверяем это равенство для каждой точки.
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
#include <iostream>
#include <fstream>
#include <cmath>
 
struct pt
{
   int x;
   int y;
};
 
int area(pt a, pt b, pt c)
{
   return abs((a.x - c.x)*(b.y - c.y) + (b.x-c.x)*(c.y-a.y));
}
 
int main()
{
    pt a, b, c;
    std::ifstream fin("input.txt");
    fin >> a.x >> a.y
        >> b.x >> b.y
        >> c.x >> c.y;
 
    int n;
    fin >> n;
    for(int i = 0; i < n; i++)
    {
        pt d;
        fin >> d.x >> d.y;
        if(area(a, b, c) == area(a, b, d) + area(a, d, c) + area(b, d, c))
            std::cout << "YES" << std::endl;
        else
            std::cout << "NO"  << std::endl;    
    }
 
    return 0;
}
 
Текущее время: 03:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru