Это небольшая часть более сложной задачи, связанной с геометрией, которой я сейчас занимаюсь.
Вопрос вроде простой, но что-то "не думается".
Вопрос вроде простой, но что-то "не думается".
А вопрос ещё скорее геометрический.
Смысл такой: в трехмерном пространстве есть 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) будет ноль.
Отредактирован alexprey
Отредактирован Mihahail
Отредактирован AsagiriGen
1.Рисуем прямую со стороны первой точки: мы фиксируем x=x1, y - любое. Получается, любые значения не ездят по бокам по оси X, но зато летят вверх по оси Y. Получается прямая направленная строго от Ox под прямым углом, параллельная Oy.
2.То же самое со второй точкой: x - любое, фиксируем y=y2. Прямая направленная строго от Oy под прямым углом, параллельная Ox.
У нас такая система координат, что между Ox и Oy - прямой угол. Тогда и между прямыми тоже прямой угол.
1.Глядим со стороны первой точки: она знает, что её координаты x и y одолжила точка С. Что у неё за z - ей по барабану, главное чтобы долг x и y вернула. Так что x=x1 и y=y1 - фиксированное, z - без разницы какое. Имеем штырь, уходящий вверх.
2.Глядим со стороны второй точки. фиксируем z=z3, x и y - любые. Примерно так строят крышy в майнкрафте - фиксируют высоту и кладут по всей горизонтальной плоскости Oxy. Имеем фанеру с прямоугольной тенью на земле.
Ровно по той же причине, что и прошлом примере(только тут плоскость-прямая), растущий из земли вверх штырь пробивает фанеру-НЛО под прямым углом.
GeneralElConsul, ты нашел 1 треугольник из возможных.
Может не самый лучший способ для установки, прмоугольный ли триангл, но просто для установления третьей точки прямоугольного треугольника - хорошо подходит.
Отредактирован Mihahail
GeneralElConsul, есть способ ещё проще, как мне кажется. Натягиваем на отрезок прямоугольный параллелепипед(надеюсь, правильно написал), так чтобы отрезок был диагональю.
Если себе всё хорошенько представить, то видно, что любая вершина(кроме исходных двух) будет искомой точкой.
угол D1AB - прямой
Отредактирован П4ела
А мне что-то подсказывает, что ТС делает что-то не правильно и поэтому ему надо рассказать задачу по глобальнее, тогда мб и будет смысл что-то придумать