Russian Qt Forum
Февраля 19, 2025, 01:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Определить конечный угол вращения составного объекта  (Прочитано 3480 раз)
8: Undefined index: LANG_NAME
Файл: /var/www/html/Sources/geshi/geshi.php
Строка: 4032
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Марта 19, 2021, 13:47 »

Всем привет еще раз.

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

Но теперь задачка немного другая..

А допустим что акселерометр (условно - некий объект) находится внутри какого-то другого объекта (ну, или лежит на нем).
И у каждого из объектов есть возможность их поворота по трем осям X,Y,Z (см рисунок).

1. Изначально угол поворота акселерометра и его "контейнера" равны нулю, относительно земли (некоей неподвижной системы отсчета).

2. Далее, допустим, что акселерометр крутанули вокруг какой-то оси на какой то угол, например на 30 градусов.

3. Теперь мы повернули и сам контейнер вокруг той же оси на какой-то угол, например 30 градусов.

4. Вопрос, а каким теперь будет угол поворота акселерометра вокруг этой же оси относительно земли?


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

Можно ли просто суммировать углы поворота вокруг осей каждого из объектов (а вдруг их будут больше двух, например,
акселерометр может лежать на черепахе, которая может наклоняться в любую сторону, и сама черепаха стоит на слонах,
которые тоже могут играть в присядки)?

Или же опять нужно что-то городить в матрицами? Если да, то как это делается?  Строит глазки

При этом, как я понимаю, каждый объект имеет свою матрицу и прочие 3-д параметры

 

« Последнее редактирование: Марта 19, 2021, 13:52 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit