0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 5
|
|
1 | |
Определение принадлежности точки к данному треугольнику23.09.2018, 18:12. Показов 4319. Ответов 15
Треугольник задан в плоскости точками A, B, C: A (xa, ya) B (xb, yb) C (xc, yc). Составить алгоритм и программу для определения принадлежности данном треугольнике точки M (x, y).
Подскажите с кодом как это можно посчитать. И желательно самым простым вариантом без усложнений. А то я несколько часов сижу ищу в интернете как это расписать но всё по нулям.
0
|
23.09.2018, 18:12 | |
Ответы с готовыми решениями:
15
Определение принадлежности точки фигуре Определение принадлежности точки к графику Определение принадлежности точки к области Определение принадлежности точки указанной области (перевести с Pascal на C++) |
Модератор
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
|
|
23.09.2018, 19:22 | 2 |
Внизу этой страницы есть нужные ссылки
например https://www.cyberforum.ru/post7631589.html
0
|
Диссидент
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
23.09.2018, 19:53 | 3 |
Алгоритм такой. Пишешь уравнение стороны Ax + By + C = 0;
Если при подстановке точки и третьей вершины выражение Ax + By + C дает один знак - значит точка и вершина лежат по одну сторону от прямой. И так для всех трех. Если где-то дает разный знак - точка не лежит в треугольнике. Добавлено через 7 минут Не решает задачу. Из-за сравнения на равенство плавающих чисел.
0
|
Модератор
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
|
|
23.09.2018, 20:43 | 4 |
Ну хотя бы предложен метод.
Дальше уж можно допилить. Как раз должно быть 2 одного знака и 1 другого. Т.е. точка лежит под 2 прямыми и над третьей или точка лежит над 2 прямыми и под третьей.
0
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
23.09.2018, 20:49 | 5 |
zss, нет.
Байт всё правильно написал. Знак означает направление отклонения. Для каждой вершины направление отклонения должно совпадать с точкой.
1
|
Модератор
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
|
|
23.09.2018, 20:55 | 6 |
Это уравнение прямой. Положительное отклонение означает, что точка лежит над прямой,
отрицательное - под прямой. Т.к. точка внутри треугольника лежит под 2 сторонами и над третьей (или наоборот). То один из знаков должен отличаться.
0
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
23.09.2018, 21:00 | 7 |
Вот для ТС формула.
Вертикальные чёрточки означают определитель. xt, yt — координаты точки, 1,2,3 — точки прямой, причём в роли точки 1 должна побывать по одному разу каждая вершина. Добавлено через 3 минуты zss, ты не понял Байта. Он имеет в виду, что надо проверить каждую сторону. Смотри. Если третья вершина под прямой, то и точка должна быть под прямой. Если же вершина над прямой, то и точка должна быть над прямой. То есть, точка и вершина должны быть с одной стороны. То есть, при подстановке третьей вершины в уравнение стороны, должен быть такой же знак, что и при подстановке точки.
2
|
0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 5
|
|
23.09.2018, 21:03 [ТС] | 8 |
Можете показать код как это должно быть, а то я как-то не понял что нужно сделать.
0
|
Диссидент
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
23.09.2018, 21:21 | 9 |
Зачем? Вы ничего не показываете, ни попыток, ни набросков... А чем мы хуже? Алгоритм вам рассказали. Кодинг - дело техники. И не очень интересно.
Добавлено через 5 минут Кстати, да. Просто вместо "==" написать "<=". Но тут такая штука. Если все входные данные - целые, предложенный мной метод позволяет оставаться в тех же целых числах. А уж целые числа комп считает точно.
0
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||||
23.09.2018, 22:06 | 10 | |||||
Сообщение было отмечено Байт как решение
Решение
ImmortalReaper,
2
|
0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 5
|
||||||
23.09.2018, 22:10 [ТС] | 11 | |||||
0
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
23.09.2018, 22:31 | 12 |
1
|
0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 5
|
|
23.09.2018, 22:44 [ТС] | 13 |
Ну это в геометрии)) А это алгоритм к тому же рабочий.
0
|
0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 5
|
||||||
23.09.2018, 23:29 [ТС] | 15 | |||||
Я уже проверял что будет если точка вне и близко к одной из сторон. То алгоритм выдает NO!(она за треугольником).
Добавлено через 25 минут А можно пожалуйста более подробно описать как тут происходит расчёт и как оно понимает точка внутри триугольника или снаружи(мне это важно узнать что-бы понять как происходит расчёт)
0
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
23.09.2018, 23:55 | 16 |
ImmortalReaper, проблема в том, что лично мне пытаться понять чужой код лень.
Тем более, что он что-то непонятное делает. Вот мой код делает именно то, что описывал Байт, по приведённой мной формуле. Он прост для понимания, вычисляется намного быстрее.
1
|
23.09.2018, 23:55 | |
23.09.2018, 23:55 | |
Помогаю со студенческими работами здесь
16
Определение принадлежности точки треугольнику Определение принадлежности точки треугольнику Определение принадлежности точки задаваемому треугольнику Программа определения принадлежности точки треугольнику Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
|
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
|
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
|
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
|
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
|
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
|
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
|
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
|
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
|
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
|
Как обойтись без проверки на null, чтобы избежать NullPointerException в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
|
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:void(0)"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
|