Как найти координаты точек пересечения перпендикуляров

Из всех заданий я только знаю как решается первая задача:

Пусть [math]K[/math] середина стороны [math]AB[/math], тогда координаты [math]K[/math] равно: [math]X_k=frac{2+0}{2},~Y_k=frac{3-3}{2}[/math],
соответственно координаты [math]K(1;0)[/math] вектор [math]AB(-2;-6)[/math]

Уравнение середины перпендикуляра [math]KO colon -2(x-1)-6(y-0)=0[/math] или [math]KO colon х+3у-1=0[/math]

Аналогично со стороной [math]BC[/math]. Координаты [math]L!left(frac{5}{2};-frac{5}{2}right)[/math], а вектор [math]BC(5;1)[/math]

Уравнение середины перпендикуляра [math]LO colon 5!left(x-frac{5}{2}right)-1!left(y+frac{5}{2}right)=0[/math] или [math]LO colon 5x+y+15=0[/math]

Затем составляем систему уравнений: [math]begin{cases}x+3y-1=0,\5x+y+15=0;end{cases}[/math] отсюда [math]begin{cases}x=-23/7,\y=10/7.end{cases}[/math]

Ответ: [math]O!left(-frac{23}{7};frac{10}{7}right)[/math].

Butt-Head

Заблокирован

1

Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки

23.07.2015, 13:33. Показов 15577. Ответов 30

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Привет! Помогите двоишнику, я же тупой батхэд !

Есть отрезок, заданный двумя точками P1 и P2. Есть точка P3. Так вот, нужно найти координаты точки пересечения перпендикуляра, опущенного на заданный отрезок и, собственно этого отрезка, причём, если точка не находится на отрезке — как то просигнализировать …

Нужен рабочий код. Можно использовать С++ 11/14 и Qt, в котором есть

C++
1
static float dotProduct(const QVector2D& v1, const QVector2D& v2);

Миниатюры

Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки
 



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

23.07.2015, 13:33

Ответы с готовыми решениями:

Найти точку пересечения отрезка и перпендикуляра, опущенного на отрезок из точки
Привет! Помогите двоишнику, я бивис! :D

Есть отрезок, заданный двумя точками P1 и P2. Есть точка…

Найти основание перпендикуляра, опущенного из точки на прямую
Необходимо решить 2 задачи,но я не понимаю каким образом это можно сделать.
1.Дан метрический…

Написать уравнение перпендикуляра, опущенного из точки на прямую
Доброго времени суток
Прорешиваю практику по экзамена по алгему,попался вопрос,который звучит так…

Написать уравнение перпендикуляра, опущенного из точки на прямую
написать уравнение перпендикуляра, опущенного из точки А(-1;0;3) на прямую (х+1)/3 = (у-1)/2=z/1

30

1471 / 826 / 140

Регистрация: 12.10.2013

Сообщений: 5,456

23.07.2015, 13:53

2

Лучший ответ Сообщение было отмечено Butt-Head как решение

Решение

Хлебнете вы от аналитической геометрии…
Может тут?
Подобие math.h для геометрии
Где-то на форуме была точно помню…
Гуглить вроде “ перпендикуляр на прямую, Координаты перпендикуляра на прямую”?.

Добавлено через 6 минут
Вот ответ.
Перпендикуляр из точки на прямую



1



Butt-Head

Заблокирован

23.07.2015, 14:05

 [ТС]

3

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

Подобие math.h для геометрии

Не… буст в топку

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

Гуглить вроде “ перпендикуляр на прямую, Координаты перпендикуляра на прямую”?.

Да гуглил… Найти расстояние (длину этого перпендикуляра) от этой точки до отрезка — нет проблем, а вот координаты — хз как находить.

Мне собственно нужны даже не совсем координаты, а просто смещение от точки P1 до точки P4, то есть расстояние от начальной точки отрезка, до точки пересечения. Конечно же, зная координаты, я это расстояние найду. Но вроде бы как то можно скалярным произведением всё решить …. Помогите, dotProduct использовать можно !

Добавлено через 6 минут
То есть фактический ответом на мой вопрос будет это: (верно? Excalibur921 ? )

C++
1
2
3
4
5
6
//Прямая задана двумя точками (x1,y1) (x2,y2). Есть третья точка (x3,y3). Из точки нужно опустить перпендикуляр и найти координаты его основания на прямой (x4,y4)
float x1, x2, x3, x4;
float y1, y2, y3, y4;
//...
x4=((x2-x1)*(y2-y1)*(y3-y1)+x1*pow(y2-y1, 2)+x3*pow(x2-x1, 2))/(pow(y2-y1, 2)+pow(x2-x1, 2));
y4=(y2-y1)*(x4-x1)/(x2-x1)+y1;

Добавлено через 1 минуту
Ну ок, а как проверить, есть ли вообще решение? Ну то есть если перпендикуляр опускается на отрезок, но не попадает в его границы (попадает по лучу, а не по отрезку) ?



0



1471 / 826 / 140

Регистрация: 12.10.2013

Сообщений: 5,456

23.07.2015, 14:10

4

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

попадает по лучу, а не по отрезку)

То найдет координаты точки на луче вроде.



1



Butt-Head

Заблокирован

23.07.2015, 14:17

 [ТС]

5

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

То найдет координаты точки на луче вроде.

чта?
Я нахожу координаты точки пересечения перпендикуляра и отрезка. Как теперь мне определить, принадлежать ли эти координаты этому отрезку?



0



1471 / 826 / 140

Регистрация: 12.10.2013

Сообщений: 5,456

23.07.2015, 14:27

6

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

чта?

Найдет координаты точки перпендикуляра на луч за границами отрезка.

Может можно и проще если важна скорость, но нужно очень шарить в геометрии. Надобыло в геометрии создавать…и просить решение в символьной форме.

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

Как теперь мне определить,

Ну наверно проверить принадлежность точки отрезку… вход точки в интервал между X и Y точек P1 и P2. А как еще?

Добавлено через 1 минуту
Может есть еще решение в что то типа высота треугольника…



1



Butt-Head

Заблокирован

23.07.2015, 14:34

 [ТС]

7

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

Ну наверно проверить принадлежность точки отрезку… вход точки в интервал между X и Y точек P1 и P2. А как еще?

ну это — то понятно:

C++
1
if((x3 > x1 && x3 < x2) && ... и тд

но дело в том, что у тебя отрезок может быть направлен в отрицательную сторону, тогда у тебя 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 минуты

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

В Qt наверняка что — то есть,

Скорей всего…
Тогда надобыло в теме Qt создавать .Или поискать либы по геометрии в Qt…А чем плоха что я кидал либу? Там и 3д есть.



1



Butt-Head

Заблокирован

23.07.2015, 14:49

 [ТС]

9

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

Тогда надобыло в теме Qt создавать

Да толку то …, всё равно все сидят только здесь

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

А чем плоха что я кидал либу?

Тем что её надо изучать.

Ладно, через жопу на Qt реализовал, скоростью и не пахнет, да мне она и не нужна.
Вообще странно, что нет ничего готового для таких стандартных вещей …



0



1471 / 826 / 140

Регистрация: 12.10.2013

Сообщений: 5,456

23.07.2015, 14:57

10

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

Вообще странно, что нет ничего готового для таких стандартных вещей

Я в Qt сначала неделю его ставил… Неверные переменные среды QT 4.8.0 Creator 2.4.1
потом не мог вывести синусоиду никто не подсказал 600 чел смотрели тему…
Синусоида OpenGL и слайдер
Потом ели стер этот Qt еще и с ошибками даже на удалении =).А примеры там это вообще жесть… куча мусора. Как не программист делал примеры туда.



1



Эксперт по математике/физикеЭксперт С++

2013 / 1342 / 382

Регистрация: 16.05.2013

Сообщений: 3,463

Записей в блоге: 6

23.07.2015, 15:01

11

Берете три вектора https://www.cyberforum.ru/cgi-bin/latex.cgi?{vec{r}}_{31}, {vec{r}}_{32} и https://www.cyberforum.ru/cgi-bin/latex.cgi?{vec{r}}_{21}
Что бы перпендикуляр лежал на отрезке достаточно, что бы скалярные произведения https://www.cyberforum.ru/cgi-bin/latex.cgi?({vec{r}}_{31}, {vec{r}}_{21}) и https://www.cyberforum.ru/cgi-bin/latex.cgi?({vec{r}}_{32}, {vec{r}}_{21}) были разных знаков.
Точка пересечения перпендикуляра находится как https://www.cyberforum.ru/cgi-bin/latex.cgi?vec{r} = {vec{r}}_{1} + ({vec{r}}_{31}, {vec{e}}_{21}){vec{e}}_{21}, где https://www.cyberforum.ru/cgi-bin/latex.cgi?{vec{e}}_{21} = frac{{vec{r}}_{21}}{left|{vec{r}}_{21} right|}



1



Butt-Head

Заблокирован

23.07.2015, 15:18

 [ТС]

12

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

потом не мог вывести синусоиду никто не подсказал 600 чел смотрели тему…
Синусоида OpenGL и слайдер

Так там есть же ответ в последнем посте На самом деле сейчас большинство современного софта пишется на Qt, т.к. код на Qt собирается на любой современной ОС. Зря ты от него отказался

Цитата
Сообщение от Ilot
Посмотреть сообщение

Берете три вектора и

Спасибо. Но я не очень понимаю, что значит берёте три вектора.
У меня есть три пары координат (см рисунок в первом посте), вот как из них получить векторы?

Цитата
Сообщение от Ilot
Посмотреть сообщение

Точка пересечения перпендикуляра находится как

А это что, сложение вектора с о скобками, в которых чего? скалярное произведение или что ?

Не могли бы вы в координаты ваши формулы перевести?



0



Эксперт по математике/физикеЭксперт С++

2013 / 1342 / 382

Регистрация: 16.05.2013

Сообщений: 3,463

Записей в блоге: 6

23.07.2015, 15:30

13

Условие того, что точка лежит внутри отрезка:
https://www.cyberforum.ru/cgi-bin/latex.cgi?left( ({x}_{3} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{3} - {y}_{1}) * ({y}_{2} - {y}_{1})right) * left( ({x}_{3} - {x}_{2}) * ({x}_{2} - {x}_{1}) + ({y}_{3} - {y}_{2}) * ({y}_{2} - {y}_{1})right) < 0
Точка пересечения перепендикулляра и отрезка:
https://www.cyberforum.ru/cgi-bin/latex.cgi?x = {x}_{1} +  frac{ ({x}_{3} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{3} - {y}_{1}) * ({y}_{2} - {y}_{1})}{sqrt{({x}_{2} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{2} - {y}_{1}) * ({y}_{2} - {y}_{1})}} * frac{ ({x}_{2} - {x}_{1})}{sqrt{({x}_{2} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{2} - {y}_{1}) * ({y}_{2} - {y}_{1})}}
https://www.cyberforum.ru/cgi-bin/latex.cgi?y = {y}_{1} +  frac{ ({x}_{3} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{3} - {y}_{1}) * ({y}_{2} - {y}_{1})}{sqrt{({x}_{2} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{2} - {y}_{1}) * ({y}_{2} - {y}_{1})}} * frac{ ({y}_{2} - {y}_{1})}{sqrt{({x}_{2} - {x}_{1}) * ({x}_{2} - {x}_{1}) + ({y}_{2} - {y}_{1}) * ({y}_{2} - {y}_{1})}}
Надеюсь нигде не соврал…
p.s. В последних выражениях корни одинаковые поэтому их можно схлопнуть. Расписал для лучшего понимания.



1



Butt-Head

Заблокирован

23.07.2015, 15:48

 [ТС]

14

Цитата
Сообщение от Ilot
Посмотреть сообщение

Условие

Хмм… а что это за условие?

Результирующие координаты это x и у ?

Добавлено через 2 минуты
Ааа понял, это что б как бы точка принадлежала именно отрезку, а не лучу…
Ну что ж, спасибо, но в итоге это получается намноОого громоздче, нежели

C++
1
2
x4=((x2-x1)*(y2-y1)*(y3-y1)+x1*pow(y2-y1, 2)+x3*pow(x2-x1, 2))/(pow(y2-y1, 2)+pow(x2-x1, 2));
y4=(y2-y1)*(x4-x1)/(x2-x1)+y1;

из 3-го поста …
Всё таки векторная математика — чисто понт, в действительности — то всё идёт через обычные умножения, сложения и тд, но если решать всё с понтом, то решение получится намного сложнее



0



Ilot

Эксперт по математике/физикеЭксперт С++

2013 / 1342 / 382

Регистрация: 16.05.2013

Сообщений: 3,463

Записей в блоге: 6

23.07.2015, 16:03

15

Лучший ответ Сообщение было отмечено Ilot как решение

Решение

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

Ну что ж, спасибо, но в итоге это получается намноОого громоздче, нежели…

Это еще как посмотреть:

C++
1
2
3
k = ((x3-x1) * (x2-x1) + (y3-y1)*(y2-y1))/ (pow(x2-x1, 2) + pow(y2-y1, 2));
x = x1 + k * (x2-x1);
y = y1 + k * (y2-y1);



1



Butt-Head

Заблокирован

23.07.2015, 16:10

 [ТС]

16

Цитата
Сообщение от Ilot
Посмотреть сообщение

Это еще как посмотреть:

Ну в принципе да…
Ладно, спасибо тебе о великий Ilot



0



1471 / 826 / 140

Регистрация: 12.10.2013

Сообщений: 5,456

23.07.2015, 16:53

17

ТС у вас работает?
Решил попробовать и не работает ваш код.
https://www.cyberforum.ru/cgi-bin/latex.cgi?A(x1,y1) вершина
https://www.cyberforum.ru/cgi-bin/latex.cgi?B(x2,y2),C(x3,y3) отрезок
https://www.cyberforum.ru/cgi-bin/latex.cgi?x,y искомая

https://www.cyberforum.ru/cgi-bin/latex.cgi?(x2-x1)=a0  <br />
(y2-y1)=a1   <br />
k=((x3-x1)*a0+(y3-y1)*a1)/(a0^2+a1^2)<br />
x=x1+k*a0<br />
y=y1+k*a1<br />



1



1471 / 826 / 140

Регистрация: 12.10.2013

Сообщений: 5,456

23.07.2015, 17:30

19

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

Работает что?

Второй метод который вы просили расписать через вектора… и который быстрей должен быть.

Цитата
Сообщение от Butt-Head
Посмотреть сообщение

А ты что за формулы привёл?

Второй метод Ilot.

Добавлено через 24 минуты
Получается Butt-Head, использует метод который я предложил, а модератор отметил неработающую формулу как лучший ответ… забавно… =).



1



Butt-Head

Заблокирован

23.07.2015, 17:46

 [ТС]

20

Цитата
Сообщение от Excalibur921
Посмотреть сообщение

Получается Butt-Head, использует метод который я предложил, а модератор отметил неработающую формулу как лучший ответ… забавно… =).

Это не модератор отметил, а я Раз так, снимаю с ИЛОТА лучший ответ. Садись — два Илот .
Ставлю лучший ответ чудо мечу. (и не один, я не жадный ехехе)



0



Получи верный ответ на вопрос 🏆 «Вычислить координаты точки пересечения перпендикуляров, проведенных через середины сторон треугольника, вершинами которого служат точки A …» по предмету 📕 Математика, используя встроенную систему поиска. Наша обширная база готовых ответов поможет тебе получить необходимые сведения!

Найти готовые ответы

Главная » Математика » Вычислить координаты точки пересечения перпендикуляров, проведенных через середины сторон треугольника, вершинами которого служат точки A (2; 3); B (0; -3); C (6; -3).


найти координаты пересечения прямой и перпендикуляра

От:

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)

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

637660b01f0dcf52a0bef6c9

17.11.2022 19:27:31

Вычеслить координаты точки пересечения перпендикуляров проведенных через середины сторон треугольника вершинами которого служат точки А(2,3) В(0,-3) С(6,-3)

математика ВУЗ
217

Понравилась статья? Поделить с друзьями:
  • Убежали хомяки как можно их найти
  • Как найти var в экселе
  • Как правильно составить договор купли продажи квартиры с использованием материнского капитала
  • Как найти друга по sms
  • Как составить красивую подпись