2014 dxdy logo

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

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


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


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 16:21 


16/11/10
75
Матрица получается так (из заданных трех точек (a, b, c) в пространстве)
Код:
         xyzVector e1 = new xyzVector(a - b);
         e1.normalize();

         xyzVector e3 = new xyzVector(xyzVector.cross(e1, c - b));
         e3.normalize();

         xyzVector e2 = new xyzVector(xyzVector.cross(e3, e1));
         M.col_x(e1).col_y(e2).col_z(e3);
Что она описывает/означает ?

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


18/05/06
13438
с Территории
Цитата:
Исследованию Фестского диска посвящено множество работ, как специалистов, так и энтузиастов, причём последние неоднократно делали заявления о дешифровке надписи на его поверхности. Однако ни одно из предложенных прочтений не было признано в научном сообществе. Работа по изучению Фестского диска продвигается медленно, что связано, в первую очередь, с краткостью сообщения и изолированностью применённой в нём системы письма.

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 16:29 


16/11/10
75
Отдельно вроде все просто:

Нормализация:
Код:

public float length()
{
   return (float)Math.Sqrt((X * X) + (Y * Y) + (Z * Z));
}

public xyzVector normalize()
{
   float locLength = length();
   float inv_length = (1 / locLength);
   x *= inv_length;
   y *= inv_length;
   z *= inv_length;
   return this;
}
И векторное произведение:
Код:
public static xyzVector cross(xyzVector v1, xyzVector v2)
{
   return new xyzVector(
         (v1.Y * v2.Z) - (v1.Z * v2.Y),
         (v1.Z * v2.X) - (v1.X * v2.Z),
         (v1.X * v2.Y) - (v1.Y * v2.X)
   );
}
Если и так не понятно могу в числах ?

-- Вт ноя 16, 2010 16:38:00 --

Даны трехмерные точки:
a = (-0.9, 4.7, 0.6)
b = (-2.1, 4.5, 1.1)
c = (-2.5, 3.2, 1.3)

Вычитаем (a-b) = (1.2, 0.2, -0.5)
Нормализуем полученное e1 = (0.89, 0.15, -0.42)

Векторное произведение (e1, c-b) = (-0.5, 0.05, -1.05)
Нормализуем полученное e3 = (-0.43, 0.04, -0.89)

Векторное произведение e2 = (e3, e1) = (0.12, -0.98, -0.10)

Собираем матрицу

0.89 0.12 -0.43
0.15 -0.98 0.04
-0.42 -0.10 -0.89

Что она описывает ?

-- Вт ноя 16, 2010 16:50:31 --

Могу еще уточнить вопрос, если затем к этой матрице применять матрицы поворотов, то что собственно будет вращаться ?

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 17:33 


26/12/08
1813
Лейден
Вы бы ставили здесь баксы, тут это любят и поощряют. А лучше - писать не код в с++ а через формулы, потому что задавая вопрос нужно показывать уважение, а если уважаешь математика напиши ему формулу, а не код. Разве что разобраться в коде сулит ему материальные выгоды (но и тут есть индивиды, которые и носом не поведут в сторону кода).

Отвечая на Ваш последний вопрос - вращаться по крайней мере точно будет Земля. И попробуйте мне только доказать, что она тут не при чем, что вращается она не от матрицы поворотов и что в ее вращении не принимает участия написанная Вами матрица.

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 17:40 


16/11/10
75
Мне бы прямой ответ на прямой вопрос ..

(для тех кто не читает код, я написал словами)

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


18/05/06
13438
с Территории
По-моему, это собралась ортогональная система координат, привязанная к трём точкам. Если их вращать, она тоже будет вращаться.

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


03/02/10
1928
tac14 в сообщении #375968 писал(а):
Собираем матрицу

0.89 0.12 -0.43
0.15 -0.98 0.04
-0.42 -0.10 -0.89

Что она описывает ?

долго разбирался...

Это -- матрица перехода $e_i=a_{ij}o_j$, где $\{o_1,o_2,o_3\}$ --исходный ортонормированный базис

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 17:55 
Заслуженный участник


27/04/09
28128

(О страшном суде коде)

tac14 в сообщении #375964 писал(а):
M.col_x(e1).col_y(e2).col_z(e3);
Меня терзают смутные сомненья… [Это означает: «Если это ваш код, почему он так странно устроен, если же не ваш, уверены ли в том, что вы описали в следующем сообщении его правильно?»]

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 18:04 


16/11/10
75
Спасибо, очень на то похоже .. только я как-то это слабо себе представляю ..

1. Допустим имеем 10 точек в пространстве
2. из первых трех собираем вот такую ортогональную систему координат (Матрица M1)
3. Начинаем вращать на угол phi первую точку по оси X, затем на угол theta по оси Z -> Матрица M2
4. Что получается ? вместе с ней вращаются 2 и 3 точки ?
5. Переходим ко второй, третьей и четвертой точки
6. Теперь не нужно собирать как ранее ортогональную систему координат, а достаточно далее вращать матрицу M2 ... и тем самым далее вращаться будут 2, 3 и 4 точки

В итоге мы провернем систему из 10 точек

Но какую роль во всем этом играет наличие ортогональной системы, или иначе, что было бы если вращать точки по отдельности, что изменилось бы ?

-- Вт ноя 16, 2010 18:06:18 --

paha в сообщении #376037 писал(а):
tac14 в сообщении #375968 писал(а):
Собираем матрицу

0.89 0.12 -0.43
0.15 -0.98 0.04
-0.42 -0.10 -0.89

Что она описывает ?

долго разбирался...

Это -- матрица перехода $e_i=a_{ij}o_j$, где $\{o_1,o_2,o_3\}$ --исходный ортонормированный базис


Спасибо, только можно пояснить, что это такое или где об этом почитать ? Я как видите далек от математики

Как в вашей формуле участвуют изначальные точки a, b, c ?

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


03/02/10
1928
tac14 в сообщении #376054 писал(а):
Как в вашей формуле участвуют изначальные точки a, b, c ?

они в Вашей формуле участвуют:)))

$$
e_1=\frac{\vec{ba}}{|\vec{ba}|},\quad e_3=\frac{\vec{ba}\times\vec{bc}}{|\vec{ba}\times\vec{bc}|},\quad e_2=e_3\times e_1
$$

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 18:18 


16/11/10
75
Ну, ок. Термин мы поняли. Но вопрос остался, формулируем:

Что описывает указанная матрица перехода в геометрическом смысле ?

-- Вт ноя 16, 2010 18:20:41 --

Если я правильно понимаю, матрица переходов как раз описывает какие - то преобразования (маштабирования, повороты, и т.д.). Что описывает именно эта матрица, построенная таким образом ?

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


03/02/10
1928
tac14 в сообщении #376067 писал(а):
Что описывает указанная матрица перехода в геометрическом смысле ?

ищите в гугле "углы Эйлера"

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


27/04/09
28128
tac14 в сообщении #376054 писал(а):
3. Начинаем вращать на угол phi первую точку по оси X, затем на угол theta по оси Z -> Матрица M2
4. Что получается ? вместе с ней вращаются 2 и 3 точки ?
Что-то я у вас не видел кода, который по матрице изменяет положения точек. Вы её на них умножаете что ли?

 Профиль  
                  
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 18:26 


16/11/10
75
paha в сообщении #376069 писал(а):
tac14 в сообщении #376067 писал(а):
Что описывает указанная матрица перехода в геометрическом смысле ?

ищите в гугле "углы Эйлера"


Да, искал уже ... это меня не приближает к ответу, точнее вопроса не снимает ..

-- Вт ноя 16, 2010 18:31:06 --

arseniiv в сообщении #376071 писал(а):
tac14 в сообщении #376054 писал(а):
3. Начинаем вращать на угол phi первую точку по оси X, затем на угол theta по оси Z -> Матрица M2
4. Что получается ? вместе с ней вращаются 2 и 3 точки ?
Что-то я у вас не видел кода, который по матрице изменяет положения точек. Вы её на них умножаете что ли?


Это дальше (не хотел усложнять):
M1 = M1 * Utils.X_rot_rad(phi);
М2 = M1 * Utils.Z_rot_rad(theta);

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


27/04/09
28128
Блин, где вы этот контринтуитивно написанный код накопали?

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

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



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

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


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

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