Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
game1progg
31 / 1 / 0
Регистрация: 07.01.2016
Сообщений: 44
#1

Определить лежит ли точка внутри треугольника - C++

28.07.2016, 13:13. Просмотров 1491. Ответов 4
Метки нет (Все метки)

Треугольник и точка (№102)
В декартовой системе координат на плоскости заданы координаты вершин треугольника и еще одной точки. Требуется написать программу, определяющую, принадлежит ли эта точка треугольнику.

Входные данные

В четырех строках входного файла INPUT.TXT находятся пары целых чисел - координаты точек. Числа в первых трех строках - это координаты вершин треугольника (x1,y1), (x2,y2), (х3,у3), в четвертой строке - координаты тестируемой точки (x4,у4). Все координаты не превышают 10000 по абсолютной величине.

Выходные данные

В выходной файл OUTPUT.TXT необходимо вывести слово «In», если точка находится внутри треугольника и «Out» в противном случае.

есть код, но wa1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main(){
    long double x1,x2,x3,x4,y1,y2,y3,y4;
    cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
    long double a=(x2-x1)*(y3-y2)-(x3-x2)*(y2-y1);
    long double b=(x3-x1)*(y4-y3)-(x4-x3)*(y3-y1);
    long double c=(x4-x1)*(y2-y4)-(x2-x4)*(y4-y1);
    if( (a>=0 && b>=0 && c>=0) || (a<=0 && b<=0 && c<=0) )
        cout<<"In";
    else
        cout<<"Out";
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 13:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить лежит ли точка внутри треугольника (C++):

Определить лежит ли точка внутри треугольника - C++
Вершины треугольника имеют координаты (0, 0), (0, a), (b, 0). Определить, лежит ли точка с координатами (x, y) внутри треугольника. ...

Определить, лежит ли точка с заданными координатами внутри треугольника - C++
Как с помощью этого решить это: Определите, лежит ли точка с координатами (x0, y0) внутри треугольника, вершины которого расположены в...

Определить, лежит ли точка внутри треугольника. Исправить код - C++
Доброго времени суток. Помогите, пожалуйста, исправить код. Преподаватель требует без структур и функций, помимо int main(). ...

Лежит ли точка М(xm;ym) внутри треугольника, заданного координатами своих вершин - C++
Лежит ли точка М(xm;ym) внутри треугольника, заданного координатами своих вершин A(xa;ya), B(xb;yb), C(xc;yc) на плоскости

Определить лежит ли точка внутри заданного прямоугольника - C++
Даны стороны прямоугольника a и b, Составить программу, определяющую лежит ли точка с координатами (x, y) внутри прямоугольника.

Определить, лежит ли точка внутри заштрихованной области - C++
Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в...

4
TheBig
-20 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 41
29.07.2016, 15:54 #2
Может так правильно?
C++
1
long double a=(x2-x1)*(y2-y1)-(x3-x2)*(y3-y1);
0
Mr.X
Эксперт С++
3060 / 1705 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
30.07.2016, 09:01 #3
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//Треугольник и точка (№102)
//В декартовой системе координат на плоскости заданы координаты вершин
//треугольника и еще одной точки. Требуется написать программу, определяющую,
//принадлежит ли эта точка треугольнику.
 
//Входные данные
//В четырех строках входного файла INPUT.TXT находятся пары целых чисел -
//координаты точек. Числа в первых трех строках - это координаты вершин
//треугольника (x1,y1), (x2,y2), (х3,у3), в четвертой строке - координаты
//тестируемой точки (x4,у4). Все координаты не превышают 10000 по абсолютной
//величине.
 
//Выходные данные
//В выходной файл OUTPUT.TXT необходимо вывести слово «In», если точка
//находится внутри треугольника и «Out» в противном случае.
 
//Примеры
//№ INPUT.TXT   OUTPUT.TXT
//1     0 0
//      100 0
//      0 100
//      100 100     Out
 
//2     0 0
//      100 0
//      0 100
//      10 10       In
 
//3     0 0
//      100 0
//      0 100
//      50 50       In
 
//4     0 0
//      100 0
//      0 100
//      0 0         In
///////////////////////////////////////////////////////////////////////////////
#include <complex>
#include <iostream>
///////////////////////////////////////////////////////////////////////////////
typedef int                             T_coord;
typedef std::complex    <  T_coord  >   T_point;
///////////////////////////////////////////////////////////////////////////////
T_coord     operator^
    (
        T_point     L,
        T_point     R
    )
{
    return      L.real()    *   R.imag()
            -   L.imag()    *   R.real();
}
///////////////////////////////////////////////////////////////////////////////
bool    point_belongs_to_triangle
    (
        T_point     A,
        T_point     B,
        T_point     C,
 
        T_point     P
    )
{
    auto    AB  =   B   -   A;
    auto    AC  =   C   -   A;
 
    auto    PA  =   A   -   P;
    auto    PB  =   B   -   P;
    auto    PC  =   C   -   P;
 
    return      abs(AB ^ AC)
 
            ==      abs(PA ^ PB)
                +   abs(PB ^ PC)
                +   abs(PC ^ PA);
}
///////////////////////////////////////////////////////////////////////////////
T_point     input_point()
{
    T_coord     x{};
    T_coord     y{};
 
    std::cin    >>  x
                >>  y;
 
    return  T_point(x, y);
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    auto    A   =   input_point();
    auto    B   =   input_point();
    auto    C   =   input_point();
 
    auto    P   =   input_point();
 
    std::cout   <<  (
                        point_belongs_to_triangle( A, B, C, P )
                            ?   "In"
                            :   "Out"
                    )
 
                <<  std::endl;
}
0
game1progg
31 / 1 / 0
Регистрация: 07.01.2016
Сообщений: 44
30.07.2016, 09:47  [ТС] #4
Mr.x ни строчки понятного для моего начинающего в прогграмировании мозга!

Добавлено через 2 минуты
0
Ferrari F1
623 / 521 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
30.07.2016, 13:59 #5
Mr.X, вы как-то настраивали msvs на такое форматирование кода, или сами вставляете такие отступы и слеши на всю строку?
0
30.07.2016, 13:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2016, 13:59
Привет! Вот еще темы с ответами:

Определить, лежит ли точка внутри заштрихованной области - C++
1) Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщ ений «Да», «Нет», «На границе» в...

Определить лежит ли точка внутри, вне или на границе заштрихованной области - C++
Задание № 2 Дана точка на плоскости с координатами (x, y). Составить программу, которая будет выводить на экран одно из сообщений...

Определить, лежит точка внутри заштрихованной области, вне её или на её границе - C++
Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений &quot;Да&quot;, &quot;Нет&quot;, &quot;На границе&quot; в...

Определить, лежит ли заданная точка на одной из сторон треугольника, заданного координатами своих вершин - C++
Определить, лежит ли заданная точка на одной из сторон треугольника, заданного координатами своих вершин. Предусмотреть проверку...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru