Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 29.10.2009
Сообщений: 10

Треугольник и точка.

29.10.2009, 03:35. Показов 2477. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне завтра сдавать лабораторну работу в универе, это последний день, а я приехал только сегодня из далека(ездил в гости за 300 км) День сдачи завтра последний, поэтому очень прошу помочь мне...

В общем задание такое, задана координатами вершин четырёхугольная фигура, и с клавиатуры вводятся координаты ещё одной точки, задача этой программы определить принадлежит ли точка фигуре или нет... Координаты фигуры следующие: A(-2,-1) B(-1,1) C(0,0) D(0,1)

Очень вас прошу помочь мне, выручяйте плиз...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2009, 03:35
Ответы с готовыми решениями:

Треугольник и точка
Задача С клавиатуры вводится координаты вершин треугольника и координаты точки с .Определить лежит ли точка в треугольнике.И если можно...

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

Входит ли точка в треугольник?
как определить входит ли точка в правильный треугольник с известными координатами?

15
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.10.2009, 07:29
иллюстрация
там, наверное, для каждой точки нужно проверить фиксированные расстояния
Миниатюры
Треугольник и точка.   Треугольник и точка.   Треугольник и точка.  

0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.10.2009, 08:25
http://ru.wikipedia.org/wiki/%... 0.BB.D1.8B
для каждой стороны можно составить уравнение
и для прямых AM, BM, CM, DM
существует точка пересечения прямых AM и (BD или CD), BM и (AC или CD) и так для всех точек A, B, C, D
точка пересечения существует, если система уравнений имеет решение

с вики то, что нужно
Миниатюры
Треугольник и точка.  
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
29.10.2009, 08:52
Цитата Сообщение от Garik18 Посмотреть сообщение
Мне завтра сдавать лабораторну работу в универе
Может быть мой ответ уже будет не актуальным, но все же отвечу. Предлагаю такой вариант:
Проверяем на пересечение отрезка (координаты введеной точки - точка A) со всеми отрезками (сторонами четырехугольника) AB, BD, DC, CA. Затем берем следующий отрезок (координаты введеной точки - точка B) и тоже проверяем на пересечение со всеми сторонами четырехугольника, и т.д.
Так вот если пересечений отрезков нет то точка внутри фигуры, если есть то точка вне фигуры.
Этот алгоритм подходит для общего случая.
Кстати где-то здесь на форуме недавно писал код для определения пересекаются ли отрезки или нет.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.10.2009, 11:03
а если точка, принадлежащая фигуре, может принадлежать стороне ?
то нужно будет проверять ещё принадлежность в алгоритме проверки пересечения отрезков
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
29.10.2009, 11:14
Цитата Сообщение от accept Посмотреть сообщение
а если точка, принадлежащая фигуре, может принадлежать стороне ?
Не совсем понял вопроса. Если он был адресован ко мне, то пожалуйста поподробнее напишите что Вы имели ввиду.
0
0 / 0 / 0
Регистрация: 29.10.2009
Сообщений: 10
29.10.2009, 13:49  [ТС]
Ппц! Каких я сегодня звиздюлей хапнул, но мне разрешили пересдать эту лабу)
Короче, я чуть с координатами ошибся, точку D не так указал A(-2,-1) B(-1,1) C(0,0) D(1,0)

Мне препод сказал, чтоб я использовал следующий метод:
Примерно помню так, что нужно проверять как для каждой прямой лежит эта точка...
Т.е., если точка лежит правее для прямой AB, то есть смысл дальше проверять как она лежит от прямой BC и т.д.

Я с уравнениями прямых не дружил никогда, что зря конечно, сам сейчас понимаю, но времени у меня сейчас совершенно нет, что учить, потому что ещё работы куча... Поэтому я очень прошу пожалуйста, кто может помочь-помогите написать эту прогу... Я буду очень благодарен...
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
30.10.2009, 05:05
Цитата Сообщение от valeriikozlov
Не совсем понял вопроса. Если он был адресован ко мне, то пожалуйста поподробнее напишите что Вы имели ввиду.
Так вот если пересечений отрезков нет то точка внутри фигуры, если есть то точка вне фигуры.
если точка лежит на стороне, то она - точка пересечения отрезков, а точка, лежащая на стороне, принадлежит фигуре
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
30.10.2009, 05:23
если точка лежит на стороне, то она - точка пересечения отрезков, а точка, лежащая на стороне, принадлежит фигуре
В этом случае необходимо устроить проверку принадлежности точки, всем четырем сторонам (и мне кажется лучше это сделать сначало)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
30.10.2009, 05:35
иллюстрация *new
тогда точка D может дать пересечение, если M находится ближе к A
Миниатюры
Треугольник и точка.   Треугольник и точка.   Треугольник и точка.  

0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
30.10.2009, 05:38
там через уравнения делать надо, я думал всё, как же определить пересекаются ли прямые, а сегодня нашёл, когда составляешь определитель Крамера, если он равен нулю, то прямые параллельны, а если нет, то точку пересечения можно найти (то есть, её даже можно не искать, просто определитель системы посчитать, нулевой он или нет)
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
30.10.2009, 06:00
Garik18,
Координаты фигуры следующие: A(-2,-1) B(-1,1) C(0,0) D(0,1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int main()
{
    double X, Y;
    cout<<"Vvedite koordinatu X: "<<endl;
    cin>>X;
    cout<<"Vvedite koordinatu Y: "<<endl;
    cin>>Y;
    if(Y<=2*X+3 && Y<=1 && X<=0 && Y>=X/2)
        cout<<"Prinadlegit"<<endl;
    else
        cout<<"Ne prinadlegit"<<endl;    
    return 0;
}
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
30.10.2009, 09:18
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
[guest@station tmp]$ ./t
Vvedite koordinatu X:
0.5
Vvedite koordinatu Y:
0.1
Ne prinadlegit
[guest@station tmp]$ ./t
Vvedite koordinatu X:
0.5
Vvedite koordinatu Y:
0.2
Ne prinadlegit
[guest@station tmp]$
маленький треугольник остался
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
30.10.2009, 09:38
Цитата Сообщение от accept Посмотреть сообщение
Код:
[guest@station tmp]$ ./t
Vvedite koordinatu X:
0.5
Vvedite koordinatu Y:
0.1
Ne prinadlegit
[guest@station tmp]$ ./t
Vvedite koordinatu X:
0.5
Vvedite koordinatu Y:
0.2
Ne prinadlegit
[guest@station tmp]$
маленький треугольник остался
Если это ко мне относится, то советую посмотреть пост №2 в этой теме. Там нарисован правильно этот четырехугольник. И координаты который Вы проверяли действительно не принадлежет фигуре.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
30.10.2009, 09:57
а, я то уже новый проверял
через прямые я сделал - не подходит (они пересекаются в любом случае)
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
30.10.2009, 10:20
Понятно, я не заметил что он данные координат менял. И делал для координат которые указаны вместе с моим кодом.
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Garik18,
Цитата:
Координаты фигуры следующие: A(-2,-1) B(-1,1) C(0,0) D(0,1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2009, 10:20
Помогаю со студенческими работами здесь

Построить иерархию классов точка, отрезок, треугольник
Добрый день, пожалуйста, помогите. Нужно Построить иерархию классов: точка, отрезок, треугольник с виртуальной функцией mesure, вычисляющей...

Наследование классов: реализовать классы точка, линия, треугольник, круг
задачка интересная,но как сделать ее-я не представляю... можете помочь..

Создание иерархии классов точка, отрезок, треугольник (ошибка в коде)
создать иерархию классов точка, отрезок, треугольник должно основаться на объектах родителях #include &lt;iostream&gt; #include...

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

Треугольник задан координатами вершин х 1 у1 х 2 у 2 х 3 у 3 точка а задана координатами х у требуется написать программу определяющую попадает ли указанная точка в заданный треугольник
Треугольник задан координатами вершин х 1 у1 х 2 у 2 х 3 у 3 точка а задана координатами х у требуется написать программу определяющую...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru