Заблокирован
|
||||||
1 | ||||||
Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки23.07.2015, 13:33. Показов 18525. Ответов 30
Метки нет (Все метки)
Привет! Помогите двоишнику, я же тупой батхэд !
Есть отрезок, заданный двумя точками P1 и P2. Есть точка P3. Так вот, нужно найти координаты точки пересечения перпендикуляра, опущенного на заданный отрезок и, собственно этого отрезка, причём, если точка не находится на отрезке - как то просигнализировать ... Нужен рабочий код. Можно использовать С++ 11/14 и Qt, в котором есть
0
|
23.07.2015, 13:33 | |
Ответы с готовыми решениями:
30
Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки Найти основание перпендикуляра, опущенного из точки на прямую Написать уравнение перпендикуляра, опущенного из точки на прямую Написать уравнение перпендикуляра, опущенного из точки на прямую |
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 13:53 | 2 |
Сообщение было отмечено Butt-Head как решение
Решение
Хлебнете вы от аналитической геометрии…
Может тут? Подобие math.h для геометрии Где-то на форуме была точно помню… Гуглить вроде “ перпендикуляр на прямую, Координаты перпендикуляра на прямую”?. Добавлено через 6 минут Вот ответ. Перпендикуляр из точки на прямую
1
|
Заблокирован
|
||||||
23.07.2015, 14:05 [ТС] | 3 | |||||
Не... буст в топку
Да гуглил... Найти расстояние (длину этого перпендикуляра) от этой точки до отрезка - нет проблем, а вот координаты - хз как находить. Мне собственно нужны даже не совсем координаты, а просто смещение от точки P1 до точки P4, то есть расстояние от начальной точки отрезка, до точки пересечения. Конечно же, зная координаты, я это расстояние найду. Но вроде бы как то можно скалярным произведением всё решить .... Помогите, dotProduct использовать можно ! Добавлено через 6 минут То есть фактический ответом на мой вопрос будет это: (верно? Excalibur921 ? )
Ну ок, а как проверить, есть ли вообще решение? Ну то есть если перпендикуляр опускается на отрезок, но не попадает в его границы (попадает по лучу, а не по отрезку) ?
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 14:10 | 4 |
1
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 14:27 | 6 |
Найдет координаты точки перпендикуляра на луч за границами отрезка.
Может можно и проще если важна скорость, но нужно очень шарить в геометрии. Надобыло в геометрии создавать…и просить решение в символьной форме. Ну наверно проверить принадлежность точки отрезку… вход точки в интервал между X и Y точек P1 и P2. А как еще? Добавлено через 1 минуту Может есть еще решение в что то типа высота треугольника…
1
|
Заблокирован
|
||||||
23.07.2015, 14:34 [ТС] | 7 | |||||
ну это - то понятно:
В Qt наверняка что - то есть, неужели нет?
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 14:41 | 8 |
А можно узнать угол отрезка P1 P3 даст Альфа 1 и угол отрезка P1 P2 даст Альфа 2. Повернуть отрезок P1 P3 на Альфа 2 будет как треугольник с горизонтальным основанием(без поворота). Тогда P4=(x1,y3).
Добавлено через 3 минуты Скорей всего… Тогда надобыло в теме Qt создавать .Или поискать либы по геометрии в Qt…А чем плоха что я кидал либу? Там и 3д есть.
1
|
Заблокирован
|
|
23.07.2015, 14:49 [ТС] | 9 |
Да толку то ..., всё равно все сидят только здесь
Тем что её надо изучать. Ладно, через жопу на Qt реализовал, скоростью и не пахнет, да мне она и не нужна. Вообще странно, что нет ничего готового для таких стандартных вещей ...
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 14:57 | 10 |
Я в Qt сначала неделю его ставил… Неверные переменные среды QT 4.8.0 Creator 2.4.1
потом не мог вывести синусоиду никто не подсказал 600 чел смотрели тему… Синусоида OpenGL и слайдер Потом ели стер этот Qt еще и с ошибками даже на удалении =).А примеры там это вообще жесть… куча мусора. Как не программист делал примеры туда.
1
|
Заблокирован
|
|
23.07.2015, 15:18 [ТС] | 12 |
Так там есть же ответ в последнем посте На самом деле сейчас большинство современного софта пишется на Qt, т.к. код на Qt собирается на любой современной ОС. Зря ты от него отказался
Спасибо. Но я не очень понимаю, что значит берёте три вектора. У меня есть три пары координат (см рисунок в первом посте), вот как из них получить векторы? А это что, сложение вектора с о скобками, в которых чего? скалярное произведение или что ? Не могли бы вы в координаты ваши формулы перевести?
0
|
23.07.2015, 15:30 | 13 |
Условие того, что точка лежит внутри отрезка:
Точка пересечения перепендикулляра и отрезка: Надеюсь нигде не соврал... p.s. В последних выражениях корни одинаковые поэтому их можно схлопнуть. Расписал для лучшего понимания.
1
|
Заблокирован
|
||||||
23.07.2015, 15:48 [ТС] | 14 | |||||
Хмм... а что это за условие?
Результирующие координаты это x и у ? Добавлено через 2 минуты Ааа понял, это что б как бы точка принадлежала именно отрезку, а не лучу... Ну что ж, спасибо, но в итоге это получается намноОого громоздче, нежели
Всё таки векторная математика - чисто понт, в действительности - то всё идёт через обычные умножения, сложения и тд, но если решать всё с понтом, то решение получится намного сложнее
0
|
23.07.2015, 16:03 | 15 | |||||
Сообщение было отмечено Ilot как решение
Решение
Это еще как посмотреть:
1
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 16:53 | 17 |
ТС у вас работает?
Решил попробовать и не работает ваш код. вершина отрезок искомая
1
|
Заблокирован
|
|
23.07.2015, 16:56 [ТС] | 18 |
Работает что?
Я оставил всё по старому, координаты считаю методом из моего поста номер 3 Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки Если делать так, как в посте номер 3 - то всё работает. А ты что за формулы привёл?
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
23.07.2015, 17:30 | 19 |
Второй метод который вы просили расписать через вектора… и который быстрей должен быть.
Второй метод Ilot. Добавлено через 24 минуты Получается Butt-Head, использует метод который я предложил, а модератор отметил неработающую формулу как лучший ответ… забавно… =).
1
|
Заблокирован
|
|
23.07.2015, 17:46 [ТС] | 20 |
Это не модератор отметил, а я Раз так, снимаю с ИЛОТА лучший ответ. Садись - два Илот .
Ставлю лучший ответ чудо мечу. (и не один, я не жадный ехехе)
0
|
23.07.2015, 17:46 | |
23.07.2015, 17:46 | |
Помогаю со студенческими работами здесь
20
Найти точку пересечения отрезка с прямой Найти точки пересечения отрезка и окружности Найти точку\точки пересечения гипербол Программа на определение перпендикуляра и нахождения точки пересечения Найти проекцию точки на прямую и точку пересечения прямой и плоскости Найти точку пересечения высот и точку пересечения биссектрис треугольника Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |