2014 dxdy logo

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

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




На страницу 1, 2, 3  След.
 
 Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 16:21 
Матрица получается так (из заданных трех точек (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 
Аватара пользователя
Цитата:
Исследованию Фестского диска посвящено множество работ, как специалистов, так и энтузиастов, причём последние неоднократно делали заявления о дешифровке надписи на его поверхности. Однако ни одно из предложенных прочтений не было признано в научном сообществе. Работа по изучению Фестского диска продвигается медленно, что связано, в первую очередь, с краткостью сообщения и изолированностью применённой в нём системы письма.

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

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

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 
Вы бы ставили здесь баксы, тут это любят и поощряют. А лучше - писать не код в с++ а через формулы, потому что задавая вопрос нужно показывать уважение, а если уважаешь математика напиши ему формулу, а не код. Разве что разобраться в коде сулит ему материальные выгоды (но и тут есть индивиды, которые и носом не поведут в сторону кода).

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

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

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

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

 
 
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 17:49 
Аватара пользователя
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 

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

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

 
 
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 18:04 
Спасибо, очень на то похоже .. только я как-то это слабо себе представляю ..

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 
Аватара пользователя
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, 2010 18:20:41 --

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

 
 
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 18:20 
Аватара пользователя
tac14 в сообщении #376067 писал(а):
Что описывает указанная матрица перехода в геометрическом смысле ?

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

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

 
 
 
 Re: Помогите: Что описывает следующая матрица
Сообщение16.11.2010, 18:26 
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 
Блин, где вы этот контринтуитивно написанный код накопали?

 
 
 [ Сообщений: 34 ]  На страницу 1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group