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
10626
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
10626
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

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



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

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


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

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