- Небольшой дисклеймер
- Постановка задачи
- Частные случаи расположения точки и отрезка в пространстве
- Начало програмной реализации
- Подход к каждому случаю
- Финальный результат (Java)
- Расстояние от точки до отрезка
- Векторы в пространстве и метод координат
- Система координат в пространстве
- Плоскость в пространстве задается уравнением:
- 📹 Видео
Видео:Координаты середины отрезкаСкачать
Небольшой дисклеймер
Статья рассчитана для начинающих (таких же как и я) программистов/математиков, которые столкнулись с такой проблемой — как же найти расстояние от точки к отрезку, имея их координаты? Да ещё и в трёхмерном пространстве! Подобной статьи, где есть чёткий ответ, мне не хватало, и информацию я собирал по крупицам, кое-что додумал сам. Сейчас же я хочу заполнить этот пробел. Ниже будет приведён сам алгоритм нахождения и примеры на Java. Так что, если нужен только код — сразу листайте вниз. Если хотите разобраться — добро пожаловать!
Это моя первая статья, буду рад любым замечаниям, которые помогут сделать данный материал лучше. Спасибо, начинаем!
Видео:Определить расстояние от точки С до прямой АВ. Метод прямоугольного треугольника.Скачать
Постановка задачи
Предположим, что мы имеем три точки в трёхмерном пространстве. Точка B — начало отрезка с координатами (x1, y1, z1). Точка Е — конец отрезка с координатами (x2, y2, z2). Начало и конец, конечно, понятия более подходящие для вектора, уж простите меня. Соответсвенно, ВЕ — отрезок, к которому мы ищем расстояние. А точка Р(xp, yp, zp) — заданная точка, от которой и нужно найти расстояние к отрезку ВЕ. Ниже приведён рисунок одного из вероятных случаев расположения (далее будет подробней об этом):
Видео:Расстояние от точки до прямой (метод координат)Скачать
Частные случаи расположения точки и отрезка в пространстве
1) Точка лежит на отрезке (в том числе, является одним из концов):
2) Точка лежит вне отрезка, но возможности провести перпендикуляр мы не имеем:
3) Точка лежит вне отрезка, и мы имеем возможность провести перпендикуляр:
4) Небольшой случай, который тоже нужно учесть — координаты начала и конца отрезков совпадают.
5) Все точки имеют одинаковые координаты, но данный случай перекроется в дальнейшей програмной реализации пунктом 1 и пунктом 4.
Видео:Определение кратчайшей расстоянии от точки до плоскостиСкачать
Начало програмной реализации
Хранить данные о координатах точки удобнее в классе. Поэтому создадим класс Point3D (поля оставлены публичными для удобства, но так делать не стоит):
Также создадим enum PointDispositionCase, хранящий возможные случаи:
А так же, сам класс для решения поставленной задачи — DistanceBetweenPointAndSegmentIn3D (далее просто — главный класс) и метод findDistance():
Видео:Определение кратчайшей расстояние от точки до плоскости способом замены плоскостей проекцииСкачать
Подход к каждому случаю
Создадим в главном классе метод, который в зависимости от координат данных точек, будет возвращать соответсвующий член перечисления Cases:
В первом случае определяем, принадлежит ли точка Р отрезку BE. Сделать это просто — если точка принадлежит отрезку, то сумма расстояния от начала отрезка к данной точке и расстояния от конца отрезка к данной точке равна длине самого отрезка. Если коротко, данное тождество должно быть верным:
Напишем метод в главном классе, который находит длину отрезка:
Не отходя от кассы, в методе findDespositionCase() найдём длину отрезков BE, BP и PE (это всё равно нам пригодится. и да, если рассматривать отрезки как вектора, эта формула справедлива и для них):
Если координаты одного из концов отрезка совпадают с заданной точкой Р, данная проверка учтёт и это. Если хотите, добавьте отдельную проверку, которая сверяет координаты заданных точек, но я ограничусь этой:
Во втором случае поработаем немного с косинусами. Для этого придётся рассмотреть треугольник ВРЕ и некоторые вектора. Тут мы имеем три подслучая:
1) Угол между заданной точкой и одним из концов отрезка тупой. Соответсвенно, его косинус меньше 0. Соответсвенно, если это угол PBE, то искомая длина — отрезок PB, а если PEB — то PE.
2) Угол между заданной точкой и одним из концов отрезка прямой. Соответственно, cos = 0. Аналогично предыдущему пункту, если это угол PBE, то искомая длина — отрезок PB, а если PEB — то PE.
3) Углы между заданной точкой и обоими концами отрезка острые. Это переадресовывает нас к третьему случаю, о котором дальше.
Повторюсь, для нахождения косинуса угла нужно рассматривать стороны треугольника РВЕ как вектора. Создадим класс Vector:
Теперь в главный класс добавим метод для нахождения косинуса между векторами:
И обновим проверку (случаи с прямым и тупым углом объединим):
Рассмотрим теперь третий случай. Имеем треугольник BEP. Пускай BН — это перпендикуляр к BP (а значит, искомое расстояние). Вспоминаем, что есть формула вычисления площади треугольника через высоту: S = (a * ha) / 2
А так как мы имеем длины всех сторон треугольника, то эту же площадь можно найти по формуле Герона: S = sqrt(p * (p — a) * (p — b) * (p — c))
Соответсвенно, с предыдущих двух формул выводим формулу для нахождения высоты:
ha = 2 / a * Math.sqrt(p * (p — a) * (p — b) * (p — c))
Это значение и будет расстоянием к отрезку в данном случае. А теперь в главном классе создадим метод для нахождения высоты через площадь:
Дело за малым — четвёртый случай. Можем либо сравнить координаты точек, либо просто найти расстояние отрезка. Если оно равно 0, то начало и конец совпадают. Добавим этот и предыдущий случаи в метод проверки:
Теперь всё, что нам осталось — это написать метод в главном классе, который в соответсвии с положением точки вернёт расстояние от точки к отрезку:
Видео:18. Расстояние от точки до прямой в пространствеСкачать
Финальный результат (Java)
Вот, что у нас получилось. На идеал не претендую, поправите под свои нужды) Мне в своё время хотя бы такой статьи не хватало.
Спасибо всем, кто уделил время данной статье! Надеюсь, кому-то это было полезно и сэкономило хотя бы чуточку времени. Удачи!
Видео:Расстояние от точки до прямойСкачать
Расстояние от точки до отрезка
Расстоянием от точки до отрезка является либо перпендикуляр, опущенный из этой точки на отрезок, либо минимальное расстояние от точки до одного из концов отрезка.
Если треугольник, вершинами которого является данная точка и концы заданного отрезка, является тупоугольным (проверка на тупоугольность проводится рассмотрением знака скалярного произведения соответствующих векторов, построенных на сторонах треугольника (кос тупого угла отрицательный))(т. е. из данной точки невозможно опустить перпендикуляр на данный отрезок), то расстоянием от точки до отрезка считается минимальное расстояние от данной точки, до одного из концов отрезка. Оно определяется с помощью формулы:
((х1— х2) 2 + (у1 — у2) 2 ) -1/2 .
Если все же перпендикуляр опустить возможно, то расстоянием от точки до отрезка считается длина этого перпендикуляра. Ее можно определить двумя способами:
1) посчитав площадь треугольника по двум формулам (полувысота на сторону и полупроизведение сторон на синус угла между ними) мы можем выразить высоту как:
h = (AC • AB • sin (AC, AB)) / BC ;
2) можем определить координаты точки пресечения отрезка с перепендикуляром, опущенным из данной точки на отрезок и посчитать расстояние между двумя точками. Для этого сначала нам надо найти уравнение перпендикуляра к данной прямой, проходящего через данную точку, затем решить систему уравнений (k и l — координаты вершины перпендикуляра, x1, y1, x2, y2 — координаты концов отрезка):
(1)(x — x1)(y2 — y1) = (y — y1)(x2 — x1)
(2) (x — k)(x2 — x1) = — (y — l)(y2 — y1)
Если (x2 — x1) = 0, то решение:
x = x1
y = l.
Если (y2 — y1) = 0, то решение:
y = y1
x = k.
В остальных случаях (пусть (x2 — x1) = α, (y2 — y1) = β):
x = (α / β) (y — y1) + x1
y = ((α 2 / β)y1 + α (k — x1) + βl) / ((α 2 / β) + β).
Видео:Расстояние между двумя точками. Координаты середины отрезка.Скачать
Векторы в пространстве и метод координат
Существует два способа решения задач по стереометрии
Первый — классический — требует отличного знания аксиом и теорем стереометрии, логики, умения построить чертеж и свести объемную задачу к планиметрической. Способ хорош тем, что развивает мозги и пространственное воображение.
Другой метод — применение векторов и координат. Это простые формулы, алгоритмы и правила. Он очень удобен, особенно когда времени до экзамена мало, а решить задачу хочется.
Если вы освоили векторы на плоскости и действия с ними — то и с векторами в пространстве разберетесь. Многие понятия окажутся знакомыми.
Видео:Лекция 24. Расстояние от точки до прямой на плоскости.Скачать
Система координат в пространстве
Выберем начало координат. Проведем три взаимно перпендикулярные оси X, Y и Z. Зададим удобный масштаб.
Получилась система координат в трехмерном пространстве. Теперь каждая его точка характеризуется тремя числами — координатами по X, Y и Z. Например, запись M(−1; 3; 2) означает, что координата точки M по X (абсцисса) равна −1, координата по Y (ордината) равна 3, а координата по Z (аппликата) равна 2.
Векторы в пространстве определяются так же, как и на плоскости. Это направленные отрезки, имеющие начало и конец. Только в пространстве вектор задается тремя координатами x, y и z:
Как найти координаты вектора? Как и на плоскости — из координаты конца вычитаем координату начала.
Длина вектора в пространстве – это расстояние между точками A и B. Находится как корень квадратный из суммы квадратов координат вектора.
Пусть точка M – середина отрезка AB. Ее координаты находятся по формуле:
Для сложения векторов применяем уже знакомые правило треугольника и правило параллелограмма
Сумма векторов, их разность, произведение вектора на число и скалярное произведение векторов определяются так же, как и на плоскости. Только координат не две, а три. Возьмем векторы и .
Произведение вектора на число:
Скалярное произведение векторов:
Косинус угла между векторами:
Последняя формула удобна для нахождения угла между прямыми в пространстве. Особенно если эти прямые – скрещиваются. Напомним, что так называются прямые, которые не параллельны и не пересекаются. Они лежат в параллельных плоскостях.
1. В кубе ABCDA1B1C1D1 точки E и K — середины ребер соответственно A1B1 и B1C1. Найдите косинус угла между прямыми AE и BK.
Если вам достался куб — значит, повезло. Он отлично вписывается в прямоугольную систему координат. Строим чертеж:
Длина ребра куба не дана. Какой бы она ни была, угол между AE и BK от нее не зависит. Поэтому возьмем единичный куб, все ребра которого равны 1.
Прямые AE и BK — скрещиваются. Найдем угол между векторами и . Для этого нужны их координаты.
Запишем координаты векторов:
и найдем косинус угла между векторами и :
2. В правильной четырехугольной пирамиде SABCD, все ребра которой равны 1, точки E, K — середины ребер SB и SC соответственно. Найдите косинус угла между прямыми AE и BK.
Лучше всего выбрать начало координат в центре основания пирамиды, а оси X и Y сделать параллельными сторонам основания.
Координаты точек A, B и C найти легко:
Из прямоугольного треугольника AOS найдем
Координаты вершины пирамиды:
Точка E — середина SB, а K — середина SC. Воспользуемся формулой для координат середины отрезка и найдем координаты точек E и K.
Найдем координаты векторов и
и угол между ними:
Покажем теперь, как вписать систему координат в треугольную призму:
3. В правильной треугольной призме ABCA1B1C1, все ребра которой равны 1, точка D — середина ребра A1B1. Найдите косинус угла между прямыми AD и BC1
Пусть точка A — начало координат. Возьмем ось X параллельно стороне BC, а ось Y перпендикулярно ей. Другими словами, на оси Y будет лежать отрезок AH, являющийся высотой треугольника ABC. Нарисуем отдельно нижнее основание призмы.
Запишем координаты точек:
Точка D — середина A1B1. Значит, пользуемся формулами для координат середины
отрезка.
Найдем координаты векторов и , а затем угол между ними:
Смотрите, как легко с помощью векторов и координат найти угол между прямыми. А если требуется найти угол между плоскостями или между прямой и плоскостью? Для решения подобных задач нам понадобится уравнение плоскости в пространстве.
Видео:Взаимно перпендикулярные плоскости. Определение кратчайшей расстоянии от точки до прямойСкачать
Плоскость в пространстве задается уравнением:
Здесь числа A, B и C — координаты вектора, перпендикулярного этой плоскости. Его называют нормалью к плоскости.
Вместо x, y и z можно подставить в уравнение координаты любой точки, принадлежащей данной плоскости. Получится верное равенство.
Плоскость в пространстве можно провести через любые три точки, не лежащие на одной прямой. Поэтому для того, чтобы написать уравнение плоскости, берем координаты трех принадлежащих ей точек. Подставляем их по очереди в уравнение плоскости. Решаем полученную систему.
Покажем, как это делается.
Напишем уравнение плоскости, проходящей через точки M (1; 0; 1), N (2; −2; 0) и K (4; 1; 2).
Уравнение плоскости выглядит так:
Подставим в него по очереди координаты точек M, N и K.
То есть A + C + D = 0.
Аналогично для точки K:
Получили систему из трех уравнений:
В ней четыре неизвестных: A, B, C и D. Поэтому одну из них мы выберем сами, а другие выразим через нее. Правило простое — вместо одной из переменных можно взять любое число, не равное нулю.
Пусть, например, D = −2. Тогда:
Выразим C и B через A и подставим в третье уравнение:
Решив систему, получим:
Уравнение плоскости MNK имеет вид:
Умножим обе части уравнения на −3. Тогда коэффициенты станут целыми:
Вектор — это нормаль к плоскости MNK.
Уравнение плоскости, проходящей через заданную точку имеет вид:
Угол между плоскостями равен углу между нормалями к этим плоскостям:
Не правда ли, знакомая формула? Скалярное произведение нормалей поделили на произведение их длин.
Заметим, что при пересечении двух плоскостей вообще-то образуется четыре угла.
Мы берем меньший из них. Поэтому в формуле стоит модуль скалярного произведения — чтобы косинус угла был неотрицателен.
4. В кубе ABCDA1B1C1D1 точки E и F — середины ребер соответственно A1B1 и A1D1. Найдите тангенс угла между плоскостями AEF и BDD1.
Строим чертеж. Видно, что плоскости AEF и BDD1 пересекаются где-то вне куба. В классическом решении пришлось бы строить линию их пересечения. Но векторно-координатный метод значительно всё упрощает. Не будем ломать голову над тем, по какой прямой пересекаются плоскости. Просто отметим координаты нужных нам точек и найдем угол между нормалями к плоскостям AEF и BDD1.
Сначала — нормаль к плоскости BDD1. Конечно, мы можем подставить координаты точек B, D и D1 в уравнение плоскости и найти коэффициенты, которые и будут координатами вектора нормали. А можем сделать хитрее — увидеть нужную нормаль прямо на чертеже. Ведь плоскость BDD1 — это диагональное сечение куба. Вектор перпендикулярен этой плоскости.
Итак, первый вектор нормали у нас уже есть:
Напишем уравнение плоскости AEF.
Берем уравнение плоскости и по очереди подставляем в него, вместо x, y и z, соответствующие координаты точек A, E и F.
Пусть С = -1. Тогда A = B = 2.
Уравнение плоскости AEF:
Нормаль к плоскости AEF:
Найдем угол между плоскостями:
5. Основание прямой четырехугольной призмы BCDA1B1C1D1 — прямоугольник ABCD, в котором AB = 5, AD = √33. Найдите тангенс угла между плоскостью грани AA1D1D и плоскостью, проходящей через середину ребра CD перпендикулярно прямой B1D, если расстояние между прямыми A1C1 и BD равно √3.
Эта задача наглядно показывает, насколько векторный метод проще классического. Попробуйте, для разнообразия, построить необходимые сечения и провести все доказательства — как это делается в «классике» 🙂
Строим чертеж. Прямую четырехугольную призму можно по-другому назвать «параллелепипед».
Замечаем, что длина и ширина параллелепипеда у нас есть, а вот высота — вроде не дана. Как же ее найти?
«Расстояние между прямыми A1C1 и BD равно √3». Прямые A1C1 и BD скрещиваются. Одна из них — диагональ верхнего основания, другая — диагональ нижнего. Вспомним, что расстояние между скрещивающимися прямыми равно длине их общего перпендикуляра. Общий перпендикуляр к A1C1 и BD — это, очевидно, OO1, где O — точка пересечения диагоналей нижнего основания, O1 — точка пересечения диагоналей верхнего. А отрезок OO1 и равен высоте параллелепипеда.
Плоскость AA1 D1 D — это задняя грань призмы на нашем чертеже. Нормаль к ней — это любой вектор, перпендикулярный задней грани, например, вектор или, еще проще, вектор .
Осталась еще «плоскость, проходящая через середину ребра CD перпендикулярно прямой B1D». Но позвольте, если плоскость перпендикулярна прямой B1D — значит, B1D и есть нормаль к этой плоскости! Координаты точек B1 и D известны:
Координаты вектора — тоже:
Находим угол между плоскостями, равный углу между нормалями к ним:
Зная косинус угла, находим его тангенс по формуле
Получим:
Ответ:
Угол между прямой m и плоскостью α тоже вычисляется с помощью скалярного произведения векторов.
Пусть — вектор, лежащий на прямой m (или параллельный ей), — нормаль к плоскости α.
Находим синус угла между прямой m и плоскостью α по формуле:
6. В кубе ABCDA1B1C1D1 точка E — середина ребра A1B1. Найдите синус угла между прямой AE и плоскостью BDD1.
Как всегда, рисуем чертеж и выбираем систему координат
Находим координаты вектора .
Нужно ли нам уравнение плоскости BDD1? В общем-то, без него можно обойтись. Ведь эта плоскость является диагональным сечением куба, а значит, нормалью к ней будет любой вектор, ей перпендикулярный. Например, вектор .
Найдем угол между прямой и плоскостью:
Ответ:
Расстояние от точки M с координатами x0, y0 и z0 до плоскости α, заданной уравнением Ax + By + Cz + D = 0, можно найти по формуле:
7. В основании прямоугольного параллелепипеда BCDA1B1C1D1 лежит прямоугольник ABCD со сторонами AB = , AD = . Высота параллелепипеда AA1 = . Найдите расстояние от точки A до плоскости A1DB.
Построим чертеж и выпишем координаты точек:
Запишем уравнение плоскости A1DB. Вы помните, как это делается — по очереди подставляем координаты точек A1, D и B в уравнение Ax + Be + Cz + D
Решим эту систему. Выберем
Тогда
Уравнение плоскости A1DB имеет вид:
Дальше все просто. Находим расстояние от точки A до плоскости A1DB:
В некоторых задачах по стереометрии требуется найти расстояние от прямой до параллельной ей плоскости. В этом случае можно выбрать любую точку, принадлежащую данной прямой.
📹 Видео
Определение расстояния от точки до отрезка Метод замены плоскостей #задачипоначертательнойгеометрииСкачать
Расстояние от точки до плоскости / Вывод формулыСкачать
Видеоурок "Канонические уравнения прямой"Скачать
7. Расстояние от точки до плоскости (вывод формулы примеры)Скачать
Михаил Галактионов в гостях у Леонида Слуцкого | Коммент.ТренерСкачать
Великий Тихий океан и доисторическая Земля.Скачать
10 класс, 19 урок, Расстояние от точки до плоскостиСкачать
7 класс, 38 урок, Расстояние от точки до прямой. Расстояние между параллельными прямымиСкачать
Видеоурок "Нормальное уравнение прямой"Скачать
Замена плоскостей проекции(Расстояние от точки до прямой)Скачать