2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 связанные точки в пространстве
Сообщение16.04.2009, 14:51 
Аватара пользователя


20/12/08
236
изниоткуда
Добрый день.

Есть три точки в трехмерном пространстве.
Их положение однозначно задается девятью переменными.
Но если наложить ограничения на степени свобод, например, задать расстояния между точками, то будет достаточно шести переменных для определения положения.

Подскажите, пожалуйста, как можно определить положения точек по заданным шести переменным с наименьшими вычислительными затратами, если учесть, что два расстояния равны?

 Профиль  
                  
 
 
Сообщение17.04.2009, 21:46 
Аватара пользователя


20/12/08
236
изниоткуда
Немного мыслей.

В качестве первых трех переменных логично взять координаты одной точки. x_0, y_0, z_0. Еще две переменные определяют положение второй точки - пусть это будут сферические углы, \phi, \theta:
x=r\sin\theta\cos\phi
y=r\sin\theta\sin\phi
z=r\cos\theta

Для нахождения третьей точки попробовал решить систему из уравнения конуса, плоскости и трех аналогичных уравнений на x, y, z. Но не сходится :(

Появилась такая идея:
Если вращать третью точку вокруг оси из двух других точек, то угол, на который повернута третья точка относительно, например, вертикального положения, будет однозначно определять положение точки. Но как это сделать?
Если вращать координаты, то придется делать много вычислительных операций.
Можно ли определить угол такого вращения без поворота/движения координат?

 Профиль  
                  
 
 
Сообщение18.04.2009, 02:08 
Заслуженный участник
Аватара пользователя


15/10/08
30/12/24
12599
Ну и? Просто две точки на сфере. Для третей введите еще два сферических угла, ровно так же, как вводили для второй.

 Профиль  
                  
 
 
Сообщение18.04.2009, 09:25 
Аватара пользователя


20/12/08
236
изниоткуда
Да, но у системы шесть степеней сободы, и координаты последней точки зависят от одной переменной

 Профиль  
                  
 
 
Сообщение18.04.2009, 12:57 
Заслуженный участник
Аватара пользователя


15/10/08
30/12/24
12599
А, между всеми точками... То есть, попросту говоря, у вас жесткий треугольник? Тогда пользуйте углы Эйлера.

 Профиль  
                  
 
 
Сообщение18.04.2009, 21:29 
Аватара пользователя


20/12/08
236
изниоткуда
Да, это фактически твердое тело.
Значит, определяю три переменные как углы Эйлера \phi,\theta,\psi, нахожу из них матрицу поворота \mathbb{A}, совмещающую две новые оси с катетами треугольника. Соответственно, вектор, направленный по новой оси, будет равен \overrightarrow{r}^{'}=\mathbb{A}\overrightarrow{r}, а он известен (единичный вектор, умноженный на длину), поэтому находим исходный вектор \overrightarrow{r}=\mathbb{A}^{-1}\overrightarrow{r}^{'}.
Как-то так?

Но как-то многовато вычислений получается :(

 Профиль  
                  
 
 
Сообщение19.04.2009, 20:50 
Заслуженный участник
Аватара пользователя


15/10/08
30/12/24
12599
Уточните задачу. Что известно, а что нужно найти? Есть ли какие-то ограничения на точки типа принадлежности каким-то кривым/поверхностям? Или вам просто нужно найти декартовы координаты каждой точки при некотором произвольно-отфонарном положении треугольника?

 Профиль  
                  
 
 
Сообщение21.04.2009, 00:35 
Аватара пользователя


20/12/08
236
изниоткуда
Да, просто декартовы координаты.

Таки решил не мучить себя и окружающих, и реализовал через углы Эйлера, и без обращения матрицы поворота.

И на скорость не жалуюсь, т.к. два из трех линейных уравнений "равны" нулю, и это здорово сократило вычисления.

PS. Спасибо за желание помочь

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group