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

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

Войти
Регистрация
Восстановить пароль
 
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
#1

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

21.11.2012, 22:22. Просмотров 707. Ответов 12
Метки нет (Все метки)

Даны действительные числа x1,x2,x3,y1,y2,y3;
Принадлежит ли начоло координат треугольнику с вершинами (x1,y1),(x2,y2),(x3,y3);
первый ступор у меня на вопросе как задать координаты точками?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 22:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Принадлежит ли начало координат треугольнику (C++):

Принадлежит ли начало координат треугольнику с вершинами - C++
Даны действительные числа x1, x2, x3, y1, y2, y3. Принадлежит ли начало координат треугольнику с вершинами (x1, y1), (x2, y2), (x3, y3)? ...

Принадлежит ли начало координат треугольнику с вершинами - C++
Даны действительные числа x1, x2, x3, y1, y2, y3. Определите, принадлежит ли начало координат треугольнику с вершинами (x1, y1), (x2,y2),...

Даны действительные числа x1 , x2 , x3 , y1 , y2 , y3 . Принадлежит ли начало координат треугольнику с вершинами (x1,y1), (x2,y2), (x3, y3)? - C++
Написать код программы. Вот условие Даны действительные числа x1 , x2 , x3 , y1 , y2 , y3 . Принадлежит ли начало координат треугольнику...

Определить принадлежит ли точка треугольнику - C++
Определить,принадлежит ли точка M(X,Y) треугольнику,образованном осями Ох и Оу и прямой,которая пересекает эти оси в точках Х и Y. Буду...

Определить, принадлежит ли точка треугольнику - C++
Треугольник задан координатами вершин. Определить, принадлежит ли точка M(x,y) треугольнику. Добавлено через 2 часа 15 минут очень...

Определить принадлежит ли точка треугольнику - C++
Здравствуйте! Не могли бы вы помочь решить мне задачу? Всем буду очень благодарен В декартовой системе координат на плоскости заданы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13219 / 7491 / 844
Регистрация: 27.09.2012
Сообщений: 18,410
Записей в блоге: 3
Завершенные тесты: 1
21.11.2012, 22:25 #2
Подтолкну в тему
1
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
21.11.2012, 22:31 #3
Способ первый:
C++
1
2
3
typedef std::pair <int, int> Point;
 
Point point(1, 2);
Способ второй:
C++
1
2
3
4
5
6
struct Point
{
    int x, y;
};
 
Point point {1, 2}; // использует список инициализации
Способ третий:
C++
1
2
3
4
5
6
7
struct Point
{
    Point(int x, int y): _x(x), _y(y) {}
    int _x, _y;
};
 
Point point (1, 2);
1
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
21.11.2012, 22:31  [ТС] #4
bool foo(point p[]) а что значит эта строчка?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
21.11.2012, 22:32 #5
Цитата Сообщение от Ihor3 Посмотреть сообщение
bool foo(point p[]) а что значит эта строчка?
функция foo принимает в качестве параметра массив структурных элементов типа point и возвращает булевую переменную
1
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
21.11.2012, 23:00  [ТС] #6
это было написано до того как я прочел ваш коментарий. Попробую 3 способом

Добавлено через 23 минуты
а в кокой библиотеке struct?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
21.11.2012, 23:15 #7
Цитата Сообщение от Ihor3 Посмотреть сообщение
это было написано до того как я прочел ваш коментарий. Попробую 3 способом

Добавлено через 23 минуты
а в кокой библиотеке struct?
Это часть синтаксиса языка, она не требует библиотек.
1
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
21.11.2012, 23:15  [ТС] #8
а проще ету програму никак не написать?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
21.11.2012, 23:20 #9
Что в вашем понимании проще? Без структур? Так рано или поздно их придется пройти. Со структурами код удобней, каждая точка живет как отдельная переменная. Можете назвать координаты x1, y1, x2, y2, ... если вам так удобнее. В коде по ссылке решена задача, дан алгоритм. По другому его не решишь, а реализация возможна различна.
1
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
21.11.2012, 23:27  [ТС] #10
просто многого не понимаю... немного розобрался с этим кодом но под свой перобатывать непонимаю как

Добавлено через 1 минуту
вы можете закоментировать строчке в програме которая по сылке
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
21.11.2012, 23:57 #11
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
#include <iostream>
 
struct point // объявляем структуру point, имеющую два поля x и y типа double
{
    double x; // обращение к элементу поля будет такое: point_name.x
    double y; // обращение к элементу поля будет такое: point_name.y
};
 
bool foo(point p[]) // функция foo принимает в качестве параметра массив структурных элементов типа point и возвращает булевую переменную
{
    int a = (p[1].x - p[0].x) * (p[2].y - p[1].y) * (p[1].y - p[0].y), 
    b = (p[2].x - p[0].x) * (p[3].y - p[2].y) * (p[2].y - p[0].y),
    c = (p[3].x - p[0].x) * (p[1].y - p[2].y) * (p[3].y - p[0].y);
 
    return (a >= 0 && b >= 0 && c >= 0) ||
                (a <= 0 && b <= 0 && c <= 0)? 1 : 0; // возвращаем истину, если все стороны больше, либо равны 0, либо меньше или равны нулю. Иначе возвращаем ложь
// этот кусок кода можно оформит лучше, все такие вместо 1 true, вместо 0 false было бы осмысленнее,
// а еще лучше возвратить результат выражения ( (a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0) )
}
 
bool prov(point p[]) // функция проверки, является ли нашь треуг. треугольником вобще
{
    return p[1].x == p[2].x && p[2].x == p[3].x? 0 : // если p[1].x == p[2].x && p[2].x == p[3].x то возвращаем истину, иначе 
                p[1].y == p[2].y && p[2].y == p[3].y? 0 : 1; если p[1].y == p[2].y && p[2].y == p[3].y истину, иначе ложь
}
 
int main()
{
    const size_t n = 4;
    point p[n];
 
    std::cout << "\n\nEnter coord point: ";
    for(size_t i = 0; i < n; ++i)
    {
        if(i > 0)
            std::cout << "\n\nEnter tringale coord " << i << ": ";
 
        std::cout << "\n\nx" << i << " -> ";
        std::cin >> p[i].x;
        std::cout << "\n\ny" << i << " -> ";
        std::cin >> p[i].y;
    }
 
    if(prov(p))
    {
        if(foo(p))
           std::cout << "\n\tYes" << std::endl;
 
        else
           std::cout << "\n\tNo" << std::endl;
    }
 
    else
        std::cout << "\n\tTringale not found" << std::endl;
 
    return 0;
}
Используется тернарный оператор. Прогуглите, фактически он сводится к if else конструкции. Дальше комментить не могу, до сдачи работы по матану 9 часов, а у меня заданий сделано 2/10 своих)
1
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
22.11.2012, 00:04  [ТС] #12
правильно ли я понимаю то что чтобы вершина треугольника совпадала из началом координат необходимо чтобы и ее координиты были(0,0)
0
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
23.11.2012, 12:14 #13
Пусть прямая l определяется http://www.cyberforum.ru/cgi-bin/latex.cgi?Ax+By+C=0
Теорема: Точки http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1} ({x}_{1},{y}_{1}) и http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{2} ({x}_{2},{y}_{2}) принадлежат разным полуплоскостям относительно прямой l тогда и только тогда, когда http://www.cyberforum.ru/cgi-bin/latex.cgi?(A{x}_{1}+B{y}_{1}+C)(A{x}_{2}+B{y}_{2}+C) <0

Точка находится внутри треугольника, если для любых двух вершин треугольника оставшаяся вершина и проверяемая точка лежат в одной полуплоскости относительно прямой, проходящей через эти две вершины.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 12:14
Привет! Вот еще темы с ответами:

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

Определить, принадлежит ли данная точка треугольнику - C++
Определить, принадлежит ли данная точка треугольнику, образованному осями координат и прямой a_1 x + b_1 y + c_1 = 0. Сделать...

Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику. - C++
Добрый день! Помогите пожалуйста разобраться с прогой... Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли...

Дана точка A(x; y) на координатной плоскости. Определить, принадлежит ли она треугольнику с вершинами в точках . - C++
Дана точка A(x; y) на координатной плоскости. Определить, принадлежит ли она треугольнику с вершинами в точках .


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.11.2012, 12:14
Ответ Создать тему
Опции темы

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