Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ALPInist
0 / 0 / 0
Регистрация: 27.05.2014
Сообщений: 14
#1

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

27.05.2014, 21:01. Просмотров 947. Ответов 4
Метки нет (Все метки)

Определить,принадлежит ли точка M(X,Y) треугольнику,образованном осями Ох и Оу и прямой,которая пересекает эти оси в точках Х и Y.
Буду очень благодарен за любую помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 21:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить принадлежит ли точка треугольнику (C++):

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

Определить, принадлежит ли точка треугольнику
Треугольник задан координатами вершин. Определить, принадлежит ли точка M(x,y)...

Определить, принадлежит ли данная точка треугольнику
Определить, принадлежит ли данная точка треугольнику, образованному осями...

Определить принадлежит ли точка с координатами (x, y) треугольнику
программа должна определять принадлежит ли точка с координатами (x, y)...

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

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

4
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7009 / 3302 / 451
Регистрация: 04.12.2011
Сообщений: 9,141
Записей в блоге: 5
28.05.2014, 01:01 #2
ALPInist, задачка нудновата поэтому не проверял дотошно. Посмотрите и пишите если что.
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
#include <iostream>
using namespace std;
 
double line_Y( const double Xo, const double Yo, double x ){
    if (Xo != 0 && Yo != 0){
return Yo * ( 1 - x / Xo ) ; //уравнения прямой проходящей не через точки (Xo, Yo),
//а через (Xo, 0) и (0, Yo)  
    }else{
cout << "Coord of intersection point at any axis may not be equal zero!" << endl;
system ("pause");
exit(1);
    }
}
 
bool is_belong_triangle(const double Xo, const double Yo, double x,  double y){
if( (Xo > 0 && x > Xo) ||(Xo < 0 && x < Xo) ) return false;
bool ugu = y < line_Y( Xo, Yo, x );
    if( Yo > 0) return ugu;
    else
        return !ugu;
}
int main()
{
    double Xo, Yo, x, y ;
    char select_cont = 'y';
    do{
cin.sync();
cout << "Xo - ";
cin >> Xo;
cout<<endl;
cout << "Yo - ";
cin >> Yo;
cout<<endl;
cout << "x - ";
cin >> x;
cout<<endl;
cout << "y - ";
cin >> y;
cout<<endl;
if(is_belong_triangle(Xo, Yo, x, y)) cout << "Belongs" ;
else cout << "Not belongs";
cout<< "\nContinue y or Y, else exit ";
cin >> select_cont;
}while( 
       select_cont == 'y' || select_cont == 'Y' || select_cont == 'н' || select_cont == 'Н'
       );
cout<<endl;
system("pause") ;
return 0;
}
0
ALPInist
0 / 0 / 0
Регистрация: 27.05.2014
Сообщений: 14
28.05.2014, 23:32  [ТС] #3
Благодарю
А есть ли такой вариант,что бы решить эту задачку проще? А то уж много непонятного в Вашем коде Максиму что мы прошли на данный момент так это двумерные массивы)
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7009 / 3302 / 451
Регистрация: 04.12.2011
Сообщений: 9,141
Записей в блоге: 5
28.05.2014, 23:46 #4
Цитата Сообщение от ALPInist Посмотреть сообщение
Благодарю
Да бросьте. Может и можно проще, но хотелось, чтобы было понятно.
В полуплоскостях Y>0 и Y<0 логика взаимно противоположна и переменная ugu компактно решает это. Думаю, в этой задачке геометрии 7-го класса больше, чем программирования. А кода, - код наплакал)
Функция, рассчитывающая точку на прямой, задаваемой точками пересечения с осями и функция, определяющая лежит ли точка в треугольнике из осей и отрезка этой прямой между ними. Двумерные массивы тут даже и не нужны.
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
29.05.2014, 00:41 #5
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
#include <iostream>
#include <cstdlib>
#include <cmath>
 
bool isInTriangle(double x0, double y0, double x, double y)
{
    if (x0 == 0 || y0 == 0)
    {
        std::cout << "Недопустимое значение!" << std::endl;
        exit(1);
    }
    if (y <= y0)
    {
        double tang = y0/x0;
        if (x <= ((y0-y)/tang))
            return true;
    }
    return false;
}
 
int main()
{
    double x0, y0, x, y;
    setlocale(LC_ALL, "");
    std::cout << "Введите точку пересечения оси X: ";
    std::cin >> x0;
    std::cout << "Введите точку пересечения оси Y: ";
    std::cin >> y0;
    std::cout << "Введите координату X точки M: ";
    std::cin >> x;
    std::cout << "Введите координату Y точки M: ";
    std::cin >> y;
    std::cout << "Точка M ";
    isInTriangle(x0, y0, x, y)? std::cout << "" : std::cout << "не ";
    std::cout << "принадлежит треугольнику.";
    
    return 0;
}
0
29.05.2014, 00:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2014, 00:41
Привет! Вот еще темы с решениями:

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

Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их
Даны отрезки и и точка A с координатой х. Определить, принадлежит ли данная...

Определить принадлежит точка точка координатам
Такая задача даны действительные числа x y определить принадлежит точка ...

Определить, принадлежит ли точка M(x,y)
Помагите сделать Дана трапеция координатами вершин. Определить, принадлежит ли...


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

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

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