192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||||||
1 | ||||||
Нахождение точки внутри прямоугольника22.07.2016, 10:57. Показов 12930. Ответов 27
Метки нет (Все метки)
Дано: Прямоугольник, заданный 4 точками. Точка заданная координатами. Нужно написать функцию, возращающую Труе\Фалсе на нахождение точки внутри прямоугольника. Я знаю есть формула математическая но я хочу узнать как её вывели
если d1, d2, d3, d4 отрицательны - точка внутри четырехугольника
0
|
22.07.2016, 10:57 | |
Ответы с готовыми решениями:
27
Рассчитать координаты описанного прямоугольника внутри которого оказываются все заданные точки Определить находится ли круг внутри прямоугольника Определить лежит ли точка внутри заданного прямоугольника Классы. Нахождение периметра и площади прямоугольника. |
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
|
||||||
22.07.2016, 12:06 | 2 | |||||
1
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
|
22.07.2016, 12:08 | 3 |
jurok_85, а нигде не сказано, что стороны прямоугольника параллельны осям координат!
1
|
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
|
|
22.07.2016, 12:20 | 4 |
по координатам прямоугольника вывести формулы прямых ограничивающих площадь прямоугольника
затем проверить систему уравнений подставив координаты точки. частный случай параллельные стороны. добавьте угол
1
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
22.07.2016, 12:24 [ТС] | 5 |
а по подробней можно
0
|
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
|
|
22.07.2016, 13:11 | 6 |
zss, я не силен в тригонометрии, но по моему тут надо угол наклона тогда вычислять и как то потом связывать данные координаты точки и прямоугольника с углом наклона?
1
|
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
|
|
22.07.2016, 16:52 | 8 |
Можно и так. А можно использовать y=kx+b и проверять только по b. Чуть позже представлю.
1
|
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
|
|
22.07.2016, 17:59 | 9 |
A,B,C,D вершины прямоугольника( x,y координаты точек)
общее уравнение прямой Y=kX+B или K=(y2-y1)/(x2-x1) например для отрезка АВ А(x1,y1) B(x2,y2) когда будем знать коэф. К то можем для произвольной точки М получить уравнение прямой с коэф К(параллельной сторонам) Y=Kx-K*x1+y1 через точку М. нас интересует свободный член (К*x1+y1) как видим на рисунке проверяем свободный член, что меньше чем у верхней прямой и больше нижней стороны. Аналогично для прямых AD и BC
1
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
22.07.2016, 18:06 | 10 |
Мне кажется, самое простое - это через косые произведения векторов (на самом деле годится для любого выпуклого многоугольника).
Пусть вершины прямоугольника в порядке обхода против часовой стрелки - это точки A, B, C, D, и определяем принадлежность к нему точки P. По очереди находим косые произведения векторов (PA, PB), (PB, PC), (PC, PD), (PD, PA). Если хотя бы одно из произведений отрицательно - точка вне прямоугольника. Косое произведение векторов x и y равно x1*y2 - x2*y1.
1
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
22.07.2016, 23:32 [ТС] | 11 |
Очень интересно! Столько способов решение этой задачи )) Можете по конкретней разъяснить их (по каким теоремам, аксиомам, формулам и т.д.). Я в геометрии не силён но постараюсь осмыслить то что вы будете писать и самое главное мысль объяснить, а то одно дело выучить формулу или теорему которую забудешь на слейдущий день другое дело понять смысл и она будет держаться у тебя в голове всё время ))
Добавлено через 3 минуты можете объяснить алгоритм пренадлежности точки треугольнику?
0
|
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
|
||||||
23.07.2016, 17:54 | 12 | |||||
Сообщение было отмечено no swear как решение
Решение
ну тогда самый простой способ для понимания). условимся что треугольник имеет три стороны( обозначим a,b,c). теперь для нахождения площади найдем длину каждой стороны a,b,c. формулу для длины стороны произвольного треугольника найдешь в сети(по координатам длина будет)
АВ=sqrt((x2-x1)^2+(y2-y1)^2) Площадь для такого треугольника S=sqrt( p*(p-a)*(p-b)*(p-c)) где p=(a+b+c)/2 так получим площадь треугольника с вершинами A,B,C и длиной сторон a,b,c! Всё это, как писали выше, необходимо для разбиения на треугольники. рисуем квадрат с вершинами A,B,C,D. Ставим исследуемую точку М в (допустим) центр прямоугольника. соедини каждую вершину с точкой М. получишь 4 треугольника.(ABM,BCM,CDM,ADM)/ как выше написано находим площади этих 4-х треугольников. основная мысль такова- если точка в прямоугольнике то сумма площадей треуголок равна площади прямоугольника. а если точка вне него то сумма площадей ТР. будет больше площади прямоугольника) Самый простой способ для понимания.
функция Длины функция Площади ввод координат от пользователя вызов Д (8 раз) вызов П (4 раза) вычисление площади ПРям-ка суммирование площадей 4-х ТР-ков сравнение площадей вывод на экран результата
1
|
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
|
|
23.07.2016, 18:25 | 13 |
Сообщение было отмечено no swear как решение
Решение
рисунок
2
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
23.07.2016, 18:57 [ТС] | 14 |
0
|
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
|
|
23.07.2016, 19:16 | 15 |
будете реализовывать- не забудьте выложить на обозрение. я тоже только учусь и будет интересно посмотреть код. Параллельно с Вами попробую написать. Главная проблема сейчас, для меня, как передавать в функцию попарно координаты точек. Или реализовать классы, которые будут получать массив и считать длину сторон 1-го треугольника, или писать кучу строк. Но это вопрос уже к Уважаемым мастерам С++.Слежу за темой. Приятного кода всем)
1
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
23.07.2016, 19:29 [ТС] | 16 |
1
|
Заблокирован
|
||||||
24.07.2016, 11:43 | 17 | |||||
2
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||||||
25.07.2016, 14:35 [ТС] | 18 | |||||
0
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
25.07.2016, 14:42 [ТС] | 19 |
0
|
Заблокирован
|
|
25.07.2016, 14:52 | 20 |
1
|
25.07.2016, 14:52 | |
25.07.2016, 14:52 | |
Помогаю со студенческими работами здесь
20
Нахождение периметра прямоугольника на оси координат Вывести сумму координат всех точек внутри прямоугольника Затабулировать функцию внутри прямоугольника и области существования данной функции Определить точки пересечения круга и прямоугольника Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |