0 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 58
|
|
1 | |
Определить находится ли точка внутри квадрата17.01.2016, 23:51. Показов 5622. Ответов 6
Метки нет (Все метки)
Здравствуйте! Есть задача. Задано множество точек на плоскости. Найти все четверки точек, являющихся вершинами квадратов. Найти квадрат, внутри которого лежит наибольшее количество точек множества. С поиском четвёрок всё понятно - сравнить длины сторон и проверить скалярное произведение. А вот как определить лежит ли точка внутри квадрата или нет сложновато. Нашел здесь в темах программу от Puporeva на Pascale с комментариями, вроде всё понятно. Стал пробовать в MathCADe на простых примерах не всё сходится. Идея заключается в нахождении площади треугольников и сравнении попарного их произведения с нулём (если два произведения больше нуля, то точка принадлежит квадрату). На простых примерах получил, что, если одно произведение равно нулю, то точка лежит на стороне квадрата, а значит и принадлежит ему. И ещё, если произведения попарно отрицательны, то тоже находится внутри. Пример свой прикрепляю с программой Puporeva. Может кто-то знает это правило про точку внутри треугольников или есть ещё какой способ, чтобы можно алгоритм было составить?
0
|
17.01.2016, 23:51 | |
Ответы с готовыми решениями:
6
Определить находится ли точка внутри квадрата Определить, находится ли точка с координатами (x, y) внутри квадрата Проверить находится ли точка внутри круга или квадрата Определить, лежит ли точка внутри квадрата |
0 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 58
|
|
18.01.2016, 22:53 [ТС] | 3 |
Symon, спасибо! написал кое-что. Вроде правильно, но нашел ошибку при расчётах. Задаю 7точек так, чтобы получалось 3квадрата и одна точка внутри одного из квадратов. Но находит только 2квадрата, а один не находится, потому что точки в массиве идут по диагонали (проверил простым введением точек и вычислением определителей векторов вначале программы). Может нужно как-то изменить формулу или перебор в цикле? И в ответе не отображаются координаты точек вершин квадрата. Можете подсказать в чём причина?
0
|
21.01.2016, 23:33 | 4 |
Квадраты теряются из-за неправильной организации границ циклов. Не все варианты прощупываются.
В приложении полное решение задачи с квадратами: Найти все квадраты с вершинами в точках данного множества. Определить число точек множества, входящих в каждый квадрат. Квадраты.zip
1
|
0 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 58
|
|
22.01.2016, 19:40 [ТС] | 5 |
Symon, можете в формате mcd скинуть, а то у меня маткад11?
0
|
22.01.2016, 20:44 | 6 |
Сообщение было отмечено ДмитрийЛар как решение
Решение
1
|
0 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 58
|
|
26.01.2016, 22:12 [ТС] | 7 |
Symon, спасибо большое! Преподаватель принял и первоначальный ещё мой вариант. Зато теперь понял как проверить точки по диагонали или нет.
0
|
26.01.2016, 22:12 | |
26.01.2016, 22:12 | |
Помогаю со студенческими работами здесь
7
Определить, находится ли точка внутри треугольника Определить, находится ли точка внутри треугольника Определить находится ли точка внутри прямоугольника Определить, находится ли точка внутри многоугольника Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |