найти координаты пересечения прямой и перпендикуляра
От: |
coreduo |
||
Дата: | 18.07.07 10:18 | ||
Оценка: |
День добрый!
Есть прямая, заданная двумя точками, p1 и p2. Есть третья точка — p3. Из p3 проводим перпендикуляр к прямой p1-p2, как посчитать координаты пересечения перпендикуляра и прямой?
Ткните пожалуйста мордой в алгоритм или в исходники, а то что-то туплю…
С уважением,
Михаил Белов
Re: найти координаты пересечения прямой и перпендикуляра
От: |
SergH
|
||
Дата: | 18.07.07 10:54 | ||
Оценка: |
Здравствуйте, coreduo, Вы писали:
C>Есть прямая, заданная двумя точками, p1 и p2. Есть третья точка — p3. Из p3 проводим перпендикуляр к прямой p1-p2, как посчитать координаты пересечения перпендикуляра и прямой?
C>Ткните пожалуйста мордой в алгоритм или в исходники, а то что-то туплю…
Находим первую прямую в виде a1x + b1y + c1 = 0
Любой перпендикуляр к ней имеет вид b1x — a1y + c2 = 0
Теперь нужо найти c2 такое, что перпендикуляр проходи через точку p3
А потом найти точку пересечения двух прямых.
Делай что должно, и будь что будет
Re: найти координаты пересечения прямой и перпендикуляра
От: |
Socrat
|
||
Дата: | 18.07.07 11:02 | ||
Оценка: |
Здравствуйте, coreduo, Вы писали:
C>День добрый!
C>Есть прямая, заданная двумя точками, p1 и p2. Есть третья точка — p3. Из p3 проводим перпендикуляр к прямой p1-p2, как посчитать координаты пересечения перпендикуляра и прямой?
C>Ткните пожалуйста мордой в алгоритм или в исходники, а то что-то туплю…
Сначала найдем скалярное произведение (p2-p1) и (p3-p1). Назовем его P. Длина проекции (p3-p1) на прямую равна L=P/|p2-p1|.
А дальше все просто — искомая точка O=p1+(p2-p1)*L/|p2-p1|=p1+(p2-p1)*P/|p2-p1|^2
Re[2]: найти координаты пересечения прямой и перпендикуляра
От: |
coreduo |
||
Дата: | 18.07.07 11:28 | ||
Оценка: |
Здравствуйте, Socrat, Вы писали:
спасибо большое, возник вопрос…
S>Сначала найдем скалярное произведение (p2-p1) и (p3-p1). Назовем его P. Длина проекции (p3-p1) на прямую равна L=P/|p2-p1|.
а вот это точно? пытаюсь нарисовать и что-то не то у меня получается…
S>А дальше все просто — искомая точка O=p1+(p2-p1)*L/|p2-p1|=p1+(p2-p1)*P/|p2-p1|^2
С уважением,
Михаил Белов
Re[3]: найти координаты пересечения прямой и перпендикуляра
От: |
Socrat
|
||
Дата: | 18.07.07 11:34 | ||
Оценка: |
Здравствуйте, coreduo, Вы писали:
C>Здравствуйте, Socrat, Вы писали:
C>спасибо большое, возник вопрос…
S>>Сначала найдем скалярное произведение (p2-p1) и (p3-p1). Назовем его P. Длина проекции (p3-p1) на прямую равна L=P/|p2-p1|.
C>а вот это точно? пытаюсь нарисовать и что-то не то у меня получается…
Вообще-то скалярное произведение равно произведению длин векторов на косинус угла между ними. Длина проекции равна длине |p3-p1|, умноженной на косинус. Что не получается?
S>>А дальше все просто — искомая точка O=p1+(p2-p1)*L/|p2-p1|=p1+(p2-p1)*P/|p2-p1|^2
C>С уважением,
C>Михаил Белов
Re[3]: найти координаты пересечения прямой и перпендикуляра
От: |
SergH
|
||
Дата: | 18.07.07 12:03 | ||
Оценка: |
Здравствуйте, coreduo, Вы писали:
C>а вот это точно? пытаюсь нарисовать и что-то не то у меня получается…
Точно. Скалярное произведение это произведение длинн векторов и косинуса угла между ними. Если одну длину убрать (разделить на неё), получится вторая длина на косинус, а это и есть длина проекции.
Делай что должно, и будь что будет
Re[4]: найти координаты пересечения прямой и перпендикуляра
От: |
coreduo |
||
Дата: | 18.07.07 17:44 | ||
Оценка: |
Да-да, вы правы… а как проще всего посчитать угол, без арк-функций это получится?
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, coreduo, Вы писали:
C>>Здравствуйте, Socrat, Вы писали:
C>>спасибо большое, возник вопрос…
S>>>Сначала найдем скалярное произведение (p2-p1) и (p3-p1). Назовем его P. Длина проекции (p3-p1) на прямую равна L=P/|p2-p1|.
C>>а вот это точно? пытаюсь нарисовать и что-то не то у меня получается…
S>Вообще-то скалярное произведение равно произведению длин векторов на косинус угла между ними. Длина проекции равна длине |p3-p1|, умноженной на косинус. Что не получается?
S>>>А дальше все просто — искомая точка O=p1+(p2-p1)*L/|p2-p1|=p1+(p2-p1)*P/|p2-p1|^2
C>>С уважением,
C>>Михаил Белов
Re[5]: найти координаты пересечения прямой и перпендикуляра
От: |
Socrat
|
||
Дата: | 18.07.07 19:29 | ||
Оценка: |
Здравствуйте, coreduo, Вы писали:
C>Да-да, вы правы… а как проще всего посчитать угол, без арк-функций это получится?
Это вряд ли… Думаю, длину дуги вычислить сложней, чем арк-функцию.
Re: найти координаты пересечения прямой и перпендикуляра
От: |
Пётр Седов
|
||
Дата: | 18.07.07 19:36 | ||
Оценка: |
Здравствуйте, coreduo, Вы писали:
C>Есть прямая, заданная двумя точками, p1 и p2. Есть третья точка — p3. Из p3 проводим перпендикуляр к прямой p1-p2, как посчитать координаты пересечения перпендикуляра и прямой?
Здесь
Автор:
Дата: 22.06.07
:
Пусть есть точка — xc,yc, отрезок x1,y1,x2,y2, как найти точку пересечения прямой, проходящей через отрезок x1,y1,x2,y2 и перпендикуляра опущенного из точки xc,yc на эту прямую
Пётр Седов (ушёл с RSDN)
- Переместить
- Удалить
- Выделить ветку
Пока на собственное сообщение не было ответов, его можно удалить.
Точка пересечения перпендикуляра к двум прямым с первой прямой — это точка, удовлетворяющая уравнению перпендикуляра к двум прямым и уравнению первой прямой.
Содержание
- 1 Обозначения
- 2 Формулы:
- 2.1 Пример
- 3 Другие формулы:
- 4 Ссылки
Обозначения
Введём обозначения:
— радиус-вектор точки пересечения;
— радиус-вектор точки на первой прямой;
— радиус-вектор точки на второй прямой;
— направляющий вектор первой прямой;
— направляющий вектор второй прямой;
— уравнение первой прямой;
— уравнение второй прямой.
Формулы:
Векторная форма:
Координатная форма:
- Заметим, что формулы верны только для скрещивающихся прямых.
Пример
Даны две скрещивающиеся прямые:
Найти точку пересечения перпендикуляра к двум прямым с первой прямой.
Решение.
Другие формулы:
- Основание перпендикуляра из точки к прямой;
- Основание перпендикуляра из точки к плоскости;
- Точка пересечения перпендикуляра к двум прямым с первой прямой;
- Точка пересечения перпендикуляра к двум прямым со второй прямой;
- Точка пересечения прямой и плоскости;
- Точка пересечения трёх плоскостей;
- Точка, равноудалённая от двух прямых;
- Точка, равноудалённая от четырёх точек;
- Точка деления отрезка в данном отношении;
- Точка прямой, находящаяся от первой точки прямой до второй в данном отношении;
- Точка прямой, находящаяся перед первой точкой прямой до второй в данном отношении;
- Точка прямой, находящаяся от первой точки прямой за второй в данном отношении.
Ссылки
- Участник:Logic-samara
Точка пересечения перпендикуляра к двум прямым с первой прямой — это точка, удовлетворяющая уравнению перпендикуляра к двум прямым и уравнению первой прямой.
Содержание
- 1 Обозначения
- 2 Формулы
- 2.1 Пример
- 3 Другие формулы
- 4 Ссылки
Обозначения[править]
Введём обозначения:
— радиус-вектор точки пересечения;
— радиус-вектор точки на первой прямой;
— радиус-вектор точки на второй прямой;
— направляющий вектор первой прямой;
— направляющий вектор второй прямой;
— уравнение первой прямой;
— уравнение второй прямой.
Формулы[править]
Векторная форма:
Координатная форма:
- Заметим, что формулы верны только для скрещивающихся прямых.
Пример[править]
Даны две скрещивающиеся прямые:
и
.
Найти точку пересечения перпендикуляра к двум прямым с первой прямой.
Решение.
Другие формулы[править]
- Основание перпендикуляра из точки к прямой;
- Основание перпендикуляра из точки к плоскости;
- Точка пересечения перпендикуляра к двум прямым с первой прямой;
- Точка пересечения перпендикуляра к двум прямым со второй прямой;
- Точка пересечения прямой и плоскости;
- Точка пересечения трёх плоскостей;
- Точка деления отрезка в данном отношении;
- Точка прямой, находящаяся от первой точки прямой до второй в данном отношении;
- Точка прямой, находящаяся перед первой точкой прямой до второй в данном отношении;
- Точка прямой, находящаяся от первой точки прямой за второй в данном отношении.
Ссылки[править]
- Участник:Logic-samara
Заблокирован |
||||
1 |
||||
Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки23.07.2015, 13:33. Показов 15551. Ответов 30 Метки нет (Все метки)
Привет! Помогите двоишнику, я же тупой батхэд ! Есть отрезок, заданный двумя точками P1 и P2. Есть точка P3. Так вот, нужно найти координаты точки пересечения перпендикуляра, опущенного на заданный отрезок и, собственно этого отрезка, причём, если точка не находится на отрезке — как то просигнализировать … Нужен рабочий код. Можно использовать С++ 11/14 и Qt, в котором есть
… Миниатюры
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
23.07.2015, 13:33 |
Ответы с готовыми решениями: Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки Есть отрезок, заданный двумя точками P1 и P2. Есть точка… Найти основание перпендикуляра, опущенного из точки на прямую Написать уравнение перпендикуляра, опущенного из точки на прямую Написать уравнение перпендикуляра, опущенного из точки на прямую 30 |
1471 / 826 / 140 Регистрация: 12.10.2013 Сообщений: 5,456 |
|
23.07.2015, 13:53 |
2 |
Сообщение было отмечено Butt-Head как решение Решение Хлебнете вы от аналитической геометрии… Добавлено через 6 минут
1 |
Заблокирован |
||||
23.07.2015, 14:05 [ТС] |
3 |
|||
Подобие math.h для геометрии Не… буст в топку
Гуглить вроде “ перпендикуляр на прямую, Координаты перпендикуляра на прямую”?. Да гуглил… Найти расстояние (длину этого перпендикуляра) от этой точки до отрезка — нет проблем, а вот координаты — хз как находить. Мне собственно нужны даже не совсем координаты, а просто смещение от точки P1 до точки P4, то есть расстояние от начальной точки отрезка, до точки пересечения. Конечно же, зная координаты, я это расстояние найду. Но вроде бы как то можно скалярным произведением всё решить …. Помогите, dotProduct использовать можно ! Добавлено через 6 минут
Добавлено через 1 минуту
0 |
1471 / 826 / 140 Регистрация: 12.10.2013 Сообщений: 5,456 |
|
23.07.2015, 14:10 |
4 |
попадает по лучу, а не по отрезку) То найдет координаты точки на луче вроде.
1 |
Заблокирован |
|
23.07.2015, 14:17 [ТС] |
5 |
То найдет координаты точки на луче вроде. чта?
0 |
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 |
|||
Ну наверно проверить принадлежность точки отрезку… вход точки в интервал между X и Y точек P1 и P2. А как еще? ну это — то понятно:
но дело в том, что у тебя отрезок может быть направлен в отрицательную сторону, тогда у тебя x2 будет меньше x1 и по этому тут нужно сперва всё это перегонять в 1-ю четверть (всего 3 координатные четверти), делать операцию и обратно. Понимаешь? По этому я и спрашиваю готовую формулу, т.к. лень всё делать самому. В 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 наверняка что — то есть, Скорей всего…
1 |
Заблокирован |
|
23.07.2015, 14:49 [ТС] |
9 |
Тогда надобыло в теме Qt создавать Да толку то …, всё равно все сидят только здесь
А чем плоха что я кидал либу? Тем что её надо изучать. Ладно, через жопу на 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
1 |
2013 / 1342 / 382 Регистрация: 16.05.2013 Сообщений: 3,463 Записей в блоге: 6 |
|
23.07.2015, 15:01 |
11 |
Берете три вектора и
1 |
Заблокирован |
|
23.07.2015, 15:18 [ТС] |
12 |
потом не мог вывести синусоиду никто не подсказал 600 чел смотрели тему… Так там есть же ответ в последнем посте На самом деле сейчас большинство современного софта пишется на Qt, т.к. код на Qt собирается на любой современной ОС. Зря ты от него отказался
Берете три вектора и Спасибо. Но я не очень понимаю, что значит берёте три вектора.
Точка пересечения перпендикуляра находится как А это что, сложение вектора с о скобками, в которых чего? скалярное произведение или что ? Не могли бы вы в координаты ваши формулы перевести?
0 |
2013 / 1342 / 382 Регистрация: 16.05.2013 Сообщений: 3,463 Записей в блоге: 6 |
|
23.07.2015, 15:30 |
13 |
Условие того, что точка лежит внутри отрезка:
1 |
Заблокирован |
||||
23.07.2015, 15:48 [ТС] |
14 |
|||
Условие Хмм… а что это за условие? Результирующие координаты это x и у ? Добавлено через 2 минуты
из 3-го поста …
0 |
Ilot 2013 / 1342 / 382 Регистрация: 16.05.2013 Сообщений: 3,463 Записей в блоге: 6 |
||||
23.07.2015, 16:03 |
15 |
|||
Сообщение было отмечено Ilot как решение Решение
Ну что ж, спасибо, но в итоге это получается намноОого громоздче, нежели… Это еще как посмотреть:
1 |
Заблокирован |
|
23.07.2015, 16:10 [ТС] |
16 |
Это еще как посмотреть: Ну в принципе да…
0 |
1471 / 826 / 140 Регистрация: 12.10.2013 Сообщений: 5,456 |
|
23.07.2015, 16:53 |
17 |
ТС у вас работает?
1 |
1471 / 826 / 140 Регистрация: 12.10.2013 Сообщений: 5,456 |
|
23.07.2015, 17:30 |
19 |
Работает что? Второй метод который вы просили расписать через вектора… и который быстрей должен быть.
А ты что за формулы привёл? Второй метод Ilot. Добавлено через 24 минуты
1 |
Заблокирован |
|
23.07.2015, 17:46 [ТС] |
20 |
Получается Butt-Head, использует метод который я предложил, а модератор отметил неработающую формулу как лучший ответ… забавно… =). Это не модератор отметил, а я Раз так, снимаю с ИЛОТА лучший ответ. Садись — два Илот .
0 |
Авторское построение. С произвольно взятой точки можно опустить перпендикуляр только на диаметр вспомогательной окружности. Следовательно необходимо построить диаметр этой окружности параллельно прямой ВС (верхний рисунок). Проведем через В и С два диаметра ВЕ и СD. Ясно, что четырех угольник BDEC прямоугольный, а стороны ВD и СЕ параллельны. Разделим одну из этих сторон пополам, воспользовавшись леммой о трапеции: «Прямая, соединяющая точку пересечения диагоналей трапеции с точкой пересечения продолженных ее боковых сторон, делит оба основания трапеции пополам».
Возьмем произвольно точку F вне прямоугольника и проведем прямые DF и ВF. Обозначим точками N и М их пересечения со стороной ЕC. Тогда прямая FG, проходящая через точку Н, пересечения диагоналей трапеции ВDNМ, делит сторону ВD пополам. Следовательно, диаметр КL, проходящий через точку G, параллелен прямой ВС (нижний рисунок).
Проведем хорды КТ и LР через точку А. Пусть прямые КР и LТ пересекаются в точке S. В треугольнике KSL отрезки КТ и LР являются его высотами. В результате прямая SV, проходящая через точку А третья его высота, так как все высоты треугольника проходят через одну точку.