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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Garik18
0 / 0 / 0
Регистрация: 29.10.2009
Сообщений: 10
#1

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

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

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

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

Очень вас прошу помочь мне, выручяйте плиз...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2009, 03:35     Треугольник и точка.
Посмотрите здесь:

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

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

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

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

Иерархия классов "Точка-Отрезок-Треугольник" - C++
Создайте иерархию классов Точка-Отрезок-Треугольник. Класс Point уже дан, мучаюсь с классом Line. После динамического объявления объекта...

Треугольник - C++
имеется класс: Треугольник даны его координаты вершин (координаты точек) выполнить операции: 1) расчет площади, периметра; 2) расчет...

Треугольник - C++
помогите!

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2009, 07:29     Треугольник и точка. #2
иллюстрация
там, наверное, для каждой точки нужно проверить фиксированные расстояния
Миниатюры
Треугольник и точка.   Треугольник и точка.   Треугольник и точка.  

accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2009, 08:25     Треугольник и точка. #3
http://ru.wikipedia.org/wiki/%D0%A3%...83.D0.BB.D1.8B
для каждой стороны можно составить уравнение
и для прямых AM, BM, CM, DM
существует точка пересечения прямых AM и (BD или CD), BM и (AC или CD) и так для всех точек A, B, C, D
точка пересечения существует, если система уравнений имеет решение

с вики то, что нужно
Миниатюры
Треугольник и точка.  
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.10.2009, 08:52     Треугольник и точка. #4
Цитата Сообщение от Garik18 Посмотреть сообщение
Мне завтра сдавать лабораторну работу в универе
Может быть мой ответ уже будет не актуальным, но все же отвечу. Предлагаю такой вариант:
Проверяем на пересечение отрезка (координаты введеной точки - точка A) со всеми отрезками (сторонами четырехугольника) AB, BD, DC, CA. Затем берем следующий отрезок (координаты введеной точки - точка B) и тоже проверяем на пересечение со всеми сторонами четырехугольника, и т.д.
Так вот если пересечений отрезков нет то точка внутри фигуры, если есть то точка вне фигуры.
Этот алгоритм подходит для общего случая.
Кстати где-то здесь на форуме недавно писал код для определения пересекаются ли отрезки или нет.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2009, 11:03     Треугольник и точка. #5
а если точка, принадлежащая фигуре, может принадлежать стороне ?
то нужно будет проверять ещё принадлежность в алгоритме проверки пересечения отрезков
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.10.2009, 11:14     Треугольник и точка. #6
Цитата Сообщение от accept Посмотреть сообщение
а если точка, принадлежащая фигуре, может принадлежать стороне ?
Не совсем понял вопроса. Если он был адресован ко мне, то пожалуйста поподробнее напишите что Вы имели ввиду.
Garik18
0 / 0 / 0
Регистрация: 29.10.2009
Сообщений: 10
29.10.2009, 13:49  [ТС]     Треугольник и точка. #7
Ппц! Каких я сегодня звиздюлей хапнул, но мне разрешили пересдать эту лабу)
Короче, я чуть с координатами ошибся, точку D не так указал A(-2,-1) B(-1,1) C(0,0) D(1,0)

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

Я с уравнениями прямых не дружил никогда, что зря конечно, сам сейчас понимаю, но времени у меня сейчас совершенно нет, что учить, потому что ещё работы куча... Поэтому я очень прошу пожалуйста, кто может помочь-помогите написать эту прогу... Я буду очень благодарен...
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.10.2009, 05:05     Треугольник и точка. #8
Цитата Сообщение от valeriikozlov
Не совсем понял вопроса. Если он был адресован ко мне, то пожалуйста поподробнее напишите что Вы имели ввиду.
Так вот если пересечений отрезков нет то точка внутри фигуры, если есть то точка вне фигуры.
если точка лежит на стороне, то она - точка пересечения отрезков, а точка, лежащая на стороне, принадлежит фигуре
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.10.2009, 05:23     Треугольник и точка. #9
если точка лежит на стороне, то она - точка пересечения отрезков, а точка, лежащая на стороне, принадлежит фигуре
В этом случае необходимо устроить проверку принадлежности точки, всем четырем сторонам (и мне кажется лучше это сделать сначало)
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.10.2009, 05:35     Треугольник и точка. #10
иллюстрация *new
тогда точка D может дать пересечение, если M находится ближе к A
Миниатюры
Треугольник и точка.   Треугольник и точка.   Треугольник и точка.  

accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.10.2009, 05:38     Треугольник и точка. #11
там через уравнения делать надо, я думал всё, как же определить пересекаются ли прямые, а сегодня нашёл, когда составляешь определитель Крамера, если он равен нулю, то прямые параллельны, а если нет, то точку пересечения можно найти (то есть, её даже можно не искать, просто определитель системы посчитать, нулевой он или нет)
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.10.2009, 06:00     Треугольник и точка. #12
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;
}
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.10.2009, 09:18     Треугольник и точка. #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]$
маленький треугольник остался
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.10.2009, 09:38     Треугольник и точка. #14
Цитата Сообщение от 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 в этой теме. Там нарисован правильно этот четырехугольник. И координаты который Вы проверяли действительно не принадлежет фигуре.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.10.2009, 09:57     Треугольник и точка. #15
а, я то уже новый проверял
через прямые я сделал - не подходит (они пересекаются в любом случае)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2009, 10:20     Треугольник и точка.
Еще ссылки по теме:

Треугольник) - C++
Даны произвольные числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то выдать соответствующее сообщение; если...

Треугольник - C++
Здраствуйте. Помогите решить Дано 1)####### 2)##### ##### ### ### # ...

Треугольник - C++
Вот такая вот задача: Написать подпрограмму-функцию для определения того, можно ли из двух отрезков a и b, заданных в основной...

Треугольник на с++ - C++
Учитывая 3 положительных действительных числа x, y, z. Произведите &quot;ДА&quot;, если возможно построить треугольник с длинами стороны x, y, z....

Треугольник в С++ - C++
Добрый день! Я уже обращался к Вам (http://www.cyberforum.ru/cpp-beginners/thread1158188.html) по этому вопросу, однако так и не...


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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.10.2009, 10:20     Треугольник и точка. #16
Понятно, я не заметил что он данные координат менял. И делал для координат которые указаны вместе с моим кодом.
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Garik18,
Цитата:
Координаты фигуры следующие: A(-2,-1) B(-1,1) C(0,0) D(0,1)
Yandex
Объявления
30.10.2009, 10:20     Треугольник и точка.
Ответ Создать тему
Опции темы

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