2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:20 
Заслуженный участник


27/04/09
28128
С моим куском ещё может быть одна проблема: если $\mathbf m\cdot\mathbf n$ нулевое или достаточно для расчётов с плавающей точкой близко к нулю. В этом случае (линейные) плоскости (почти) параллельны. Тогда можно брать тождественный поворот, а для близких к нулю значений — помучить формулу, разложив арксинус и корень в ряды и попытавшись убрать маленькую величину из знаменателя. А ещё я сначала назвал нормали $\mathbf n_1,\mathbf n_2$, а потом стал звать $\mathbf m,\mathbf n$, мда.

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:23 
Заслуженный участник
Аватара пользователя


23/07/08
10673
Crna Gora
arseniiv в сообщении #1241432 писал(а):
а потом стал звать $\mathbf m,\mathbf n$
А телепатия нам для чего дана?

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:28 


25/02/11
123
Вопрос лишь в том, можно ли это сделать красиво-элегантно? Т.е. хитроумной комбинацией всяких скалярных/векторных произведений, матриц и т.д. и т.п.?
Если в лоб, то я тоже вижу что для каждой точки есть как минимум по три (для D даже четыре) уравнения: одно из скалярного произведения (линейное), второе из определения длины вектора (нелинейное) и третье из плоскости (детерминант 4х4, линейное).
Просто из-за нелинейного уравнения кодить такое довольно неприятно. Хотелось что-то попроще.

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:32 
Заслуженный участник
Аватара пользователя


23/07/08
10673
Crna Gora
Можно, конечно. Вы можете найти единичный вектор нормали $\mathbf n$ к плоскости $ABC$, зная положения (радиус-векторы) точек $A, B, C$ ?

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:35 


25/02/11
123
svv в сообщении #1241437 писал(а):
Можно, конечно. Вы можете найти единичный вектор нормали $\mathbf n$ к плоскости $ABC$, зная положения (радиус-векторы) точек $A, B, C$ ?

Да-да, это понятно (векторное произведение любых двух векторов).

_genius_ в сообщении #1241383 писал(а):
arseniiv
Я представлял себе это совсем по-другому. Имея все углы и нормальный вектор к плоскости $ABC$ можно ведь как-то найти единичный вектор, смотрящий аккурат из $B$ в $D$, умножить его на $l$ и вуаля, $D$ готово. Потом повторить процедуру для $E$ и $F$.


но как мне из этого нормального вектора к плоскости и углов получить единичный вектор $B-D$?

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:38 
Заслуженный участник


27/04/09
28128
[Дополнение к посту выше-выше: Впрочем, можно нормировать бивектор плоскости вращения не делением на синус угла поворота (тот корень в знаменателе), а с помощью скалярного произведения. При способах вычисления, использующих ось, а не плоскость вращения, аналогично вектор оси $\mathbf m\times\mathbf n$ просто нормируется.]

_genius_ в сообщении #1241435 писал(а):
Вопрос лишь в том, можно ли это сделать красиво-элегантно? Т.е. хитроумной комбинацией всяких скалярных/векторных произведений, матриц и т.д. и т.п.?
Так всё более-менее «элегантно»: нормали находятся прямо из точек, поворот для делания плоскостей параллельными — по ним, потом мы их склеиваем хотя бы наикратчайшим переносом (вот этот, слава Диэдру, определён однозначно), а потом ищем движение плоскости, удовлетворяющее ограничениям на длину и углы ($\beta$ и $\ell$ дают нам конечный образ $D$, добавление $\gamma$ и всегда известного $\lVert E-D\rVert$ — конечный образ $E$*, сохраняющее ориентацию движение определено). А уж потом вы можете попытаться собрать всё это в одну громадную формулу и упростить, но может статься, что одновременно и прозрачнее, и вычислительно быстрее не собирать.

* Надеюсь, углы ориентированные (ориентацию можно задать расположением $A,B,C$). Иначе будет четыре варианта.

-- Пт авг 18, 2017 01:46:35 --

_genius_ в сообщении #1241439 писал(а):
но как мне из этого нормального вектора к плоскости и углов получить единичный вектор $B-D$?
А зачем? Мы уже (надеюсь: см. выше про ориентированность углов) знаем конечное расположение $D$ благодаря углу и длине.

Вообще, если величины $(m,n,\delta)$ с картинки изначально даны, проще всё построить без всяких манипуляций в пространстве по данным расстояниям и углам, поворачивая векторы в плоскости $\langle A,B,C\rangle$: сначала получаем $D$, поворачивая вектор $A-B$ и меняя его длину, потом так же получаем $E$, потом так же получаем $F$. Так, кстати (если угол $\delta$ тоже ориентированный), можно будет получить единственную конфигурацию в отличие от предыдущего способа, когда $F$ может оказаться по разные стороны от прямой $\langle D,E\rangle$.

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение17.08.2017, 23:53 


25/02/11
123
О поворотах я тоже думал. Это менее муторно чем система. Если нет других вариантов, то реализую именно его.
Нормальный вектор поочередно ставим в B, D и E и крутим BC, DB и ED соответственно.

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение18.08.2017, 00:18 
Заслуженный участник


27/04/09
28128
Можно и без нормального вектора — соорудите у этой плоскости ортонормированный базис и всё в координатах в нём. Матрица поворота имеет приятный знакомый вид.

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение18.08.2017, 01:26 


25/02/11
123
Реализовал повороты, тему можно считать закрытой.

 Профиль  
                  
 
 Re: Поставить три точки в одну плоскость с тремя другими
Сообщение18.08.2017, 09:37 


04/07/15
137
_genius_ в сообщении #1241420 писал(а):
EXE в сообщении #1241418 писал(а):
genius, я тоже, вероятно, не понимаю сути задания. Получается, Вам на одной плоскости надо воспроизвести Ваш рисунок, но с помощью вычислений? Если чёрные точки определяют плоскость, тогда остальные точки, каждая через систему уравнений, получают свои координаты на этой плоскости, но в трёхмерном пространстве. Например, точка D принадлежит этой плоскости, угол между прямыми известен, расстояние до B известно – три уравнения, три неизвестные. И так же последовательно остальные две точки.


Все правильно, только неизвестных все-таки 9, а не 3. На каждую точку по 3 координаты. Не уверен что можно составить такую систему (а про аналитическое решение можно и не мечтать), но не могу сходу сказать что нельзя.


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



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

Сейчас этот форум просматривают: ohart


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

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