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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 62, средняя оценка - 4.94
Programek
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 13
22.03.2011, 19:21     определить принадлежность точки треугольнику #1
определить принадлежит ли точка, заданная координатам, треугольнику, который задан координатами вершин. КАК задать треугольник? и как потом определить принадлежит (не принадлежит) точка которую мы задаем для нашего треугольника?

Оригинал
визначити чи належить точкаБзадана координатам,трикутнику,який заданий координатами вершин.ЯК задати трикутник? і як потім визначити чи належить(не належить) точка яку ми задаємо до нашого трикутника?


Добавлено через 2 часа 14 минут
определить принадлежит ли точка, заданная координатам, треугольнику, который задан координатами вершин. КАК задать треугольник? и как потом определить принадлежит (не принадлежит) точка которую мы задаем для нашего треугольника?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 19:21     определить принадлежность точки треугольнику
Посмотрите здесь:

C++ определить принадлежность точки к окружности
C++ Переделать код С++ (Определить принадлежность области точки)
C++ Определить принадлежность точки с координатами (x, y) закрашенной области
C++ Как определить принадлежность точки к некому множеству(функции) в C++ ?
C++ Определить принадлежность точки, координаты которой вводятся с клавиатуры, заштрихованной области
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
22.03.2011, 19:26     определить принадлежность точки треугольнику #2
Цитата Сообщение от Programek Посмотреть сообщение
КАК задать треугольник?
координатами трех вершин.


Цитата Сообщение от Programek Посмотреть сообщение
определить принадлежит (не принадлежит) точка которую мы задаем для нашего треугольника?
Для каждого из ребер проверить по какую сторону от него лежит точка. Если по внутреннюю относительно всех трех ребер то внутри.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.03.2011, 19:29     определить принадлежность точки треугольнику #3
Programek, Смотри темку - http://www.cyberforum.ru/cpp-beginne...ead222429.html там поищи правильный код.
Programek
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 13
22.03.2011, 19:34  [ТС]     определить принадлежность точки треугольнику #4
Спасибо!!!
Alex1234
 Аватар для Alex1234
12 / 12 / 0
Регистрация: 11.02.2011
Сообщений: 55
22.03.2011, 21:00     определить принадлежность точки треугольнику #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
39
40
41
42
43
44
45
46
#include <iostream>
 
using namespace std;
 
class Point
{
    double x, y, z;
public:
    Point(){}
    Point(const double X, const double Y): x(X), y(Y){}
    double X(){return x;}
    double Y(){return y;}
};
 
class Triangle
{
    Point vert[3];
public:
    Triangle(const Point &p1, const Point &p2, const Point &p3)
    {
        vert[0] = p1;
        vert[1] = p2;
        vert[2] = p3;
    }
    bool operator==(Point p)
    {
        double pl1, pl2, pl3;
        pl1 = (vert[0].X() - p.X())*(vert[1].Y() - vert[0].Y())-(vert[1].X() - vert[0].X())*(vert[0].Y() - p.Y());
        pl2 = (vert[1].X() - p.X())*(vert[2].Y() - vert[1].Y())-(vert[2].X() - vert[1].X())*(vert[1].Y() - p.Y());
        pl3 = (vert[2].X() - p.X())*(vert[0].Y() - vert[2].Y())-(vert[0].X() - vert[2].X())*(vert[2].Y() - p.Y());
        if ((pl1 >= 0 && pl2 >= 0 && pl3 >= 0) || (pl1 <= 0 && pl2 <= 0 && pl3 <= 0))
        {
            return true;
        }
        return false;
    }
};
 
//-----------------------------------------------------------
int main(int argc, char *argv[])
{
    Triangle t(Point(10,10), Point(20,10), Point(20,20));    //Треугольник
    Point p(10, 10);                                                    //Точка
    t == p ? cout <<"Точка принадлежит треугольнику": cout <<"Точка не принадлежит треугольнику";
    return 0;
}
Yandex
Объявления
22.03.2011, 21:00     определить принадлежность точки треугольнику
Ответ Создать тему
Опции темы

Текущее время: 07:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru