Это небольшая часть более сложной задачи, связанной с геометрией, которой я сейчас занимаюсь.
Вопрос вроде простой, но что-то "не думается".
Вопрос вроде простой, но что-то "не думается".
А вопрос ещё скорее геометрический.
Смысл такой: в трехмерном пространстве есть 2 вершины с известными координатами. Нужно программно определить координаты третьей, чтобы был прямоугольный треугольник.
Смысл такой: в трехмерном пространстве есть 2 вершины с известными координатами. Нужно программно определить координаты третьей, чтобы был прямоугольный треугольник.
Принятый ответ
В трехмерном пространстве не определить однозначно у тебя бесконечное множество решений, которые образуют конусСмысл такой: в трехмерном пространстве есть 2 вершины с известными координатами
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован AsagiriGen
Это вроде в двухмерном, а у меня трехмерное, да ещё и неизвестно, как повернут треугольник.
Отредактирован LVenger
Просто я в координатах шарю, ты можешь зная координаты высчитать дирекционный угол(в твоём случае это угол отсчит по часовой стрелки от направления(отрезка) до направления по оси Y по крайней мере так должно быть)
а вот дальше, надо думать, так как тебе надо так связать реальные и дирекционный углы, чтобы те были во первых каждый реальный не более 90 градусов, узнав угол и дирекционный угол можно легко узнать расстояния и координаты
Формулу тебе сразу прямо не напишу, но на мысль я тебя постарался навести
я геодезист да-да а кто это вообще такой , у нас дофига всякой геометрической состовляющей в работе, сначала сделай для 2-х измерений как я в своём совете, потом развивай формулу до 3-его измерения
Отредактирован Mihahail
Точнее не на окружности, а на сфере, раз тут три-дэ
условие на координаты вершины соотвественно [(x1+x2)/2 - x]^2 + [ (y1+y2)/2 - y ]^2 + [ (z1+z2)/2 - z ]^2 == ( [ x1 - x2 ]^2 + [ y1 - y2 ]^2 + [ z1 - z2 ]^2 )/2
Но тебе ведь не это нужно, ты наверно не указал всё, что тебе нужно в вопросе.
Отредактирован П4ела
Из этих 2-х вершин можно построить огромное количество прямоугольных треугольников.
Отредактирован AsagiriGen
Принцип схожий: у третий точки должна быть одна из координат первой точки, а две остальные второй точки, или наоборот. Например, у тебя есть A(x1,y1,z3) и B(x2, y2 , z3). Чтобы получился прямоугольный треугольник, берем C(x1, y1, z2) или (x2, y1, z2) и т.д.
Проверил в Максе.
Отредактирован Mihahail
GeneralElConsul, опередил)
П4ела, ну лол, если это катет, то просто делаем к нему перпендикулярный вектор любой длины(и "исходящий" из любого из двух концов отрезка). Т.е. тогда вершина лежит на одной из двух параллельных плоскостей, перпендикулярных отрезку. Условие: x(x1-x2)+y(y1-y2)+z(z1-z2) == [ x1 - x2 ]^2 + [ y1 - y2 ]^2 + [ z1 - z2 ]^2 или c обратным знаком в одной из сторон равенства. Из простых соображений, что вектор r - (r1-r2) лежит в нужной плоскости а значит его скалярное произведение на вектор отрезка(r1-r2) будет ноль.