Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/103: Рейтинг темы: голосов - 103, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11

Расчет углов поворота

22.09.2011, 21:13. Показов 20191. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!! Помогите с одной проблемой.

1) Имеется главная система координат.
2) Есть единичный вектор, с координатами 0.3078411, 0.0871557, 0.9474375
Надо построить вспомогательную систему координат, у которой ось Z лежит по данному вектору, ось X лежит на плоскости XOZ главной системы координат, а плоскость XOY вспомогательной системы координат лежит на плоскости перпендикулярной заданному вектору.
Точнее надо найти углы поворота второстепенной системы координат, относительно главной в последовательности X -> Y -> Z


P.S. по сути дела углы уже найдены, относительно X = -5.25591, относительно Y = 17.92917, относительно Z = 1.6221. Это рассчитывалось в специальной графической программе, но мне надо это вычислить математически.
Подскажите мне как это посчитать, и если можно, по подробнее, поскольку очень туп в математике
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2011, 21:13
Ответы с готовыми решениями:

Получение углов поворота из вектора нормали
Всем доброго времени суток! Нужно получить углы поворота относительно декартовых осей координат. При этом дан вектор нормали. Все это...

Как рассчитать поворот угла, зная координаты трех точек до поворота и после поворота угла
Как рассчитать поворот угла (в градусах), зная только координаты трех точек до поворота и после поворота данного угла? Заранее спасибо.

Редактирование углов поворота
Добрый день Есть 100 кадров анимации, для каждого записаны 3 тройки значений (position, rotation, scale). На кадре напр 10 юзер ...

17
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
23.09.2011, 05:54
Наверно оно:
http://ru.math.wikia.com/wiki/... 1%82%D0%B0
Сначала начните с новой Z. Потом с новым X. И с новым Y.
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
23.09.2011, 10:34  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Наверно оно:
http://ru.math.wikia.com/wiki/... 1%82%D0%B0
Сначала начните с новой Z. Потом с новым X. И с новым Y.
Если Вам не трудно, то опишите пожалуйста как все это делается. Стыдно признаться, но очень туп в математике, и ссылку что Вы дали, там для меня больше набор букв, чем разъяснение моей ситуации.
И почему с Z? Мне именно надо X - Y - Z.
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
23.09.2011, 13:56
Ладно. Вопрос. Вы хотите чтобы новая система координат была ортогональной? Т.е. чтобы углы между новыми осями x, y, z были по 90 градусов?
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
23.09.2011, 14:54  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Ладно. Вопрос. Вы хотите чтобы новая система координат была ортогональной? Т.е. чтобы углы между новыми осями x, y, z были по 90 градусов?
Да. Заранее большое спасибо!!!
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
23.09.2011, 18:07
Лучший ответ Сообщение было отмечено как решение

Решение

https://www.cyberforum.ru/cgi-bin/latex.cgi?z_1 = a \\x_1 = x_0 - \frac{(x_0,z_1)}{(z_1,z_1)}z_1 \\y_1 = y_0 - \frac{(y_0,z_1)}{(z_1,z_1)}z_1 - \frac{(y_0,x_1)}{(x_1,x_1)}x_1
https://www.cyberforum.ru/cgi-bin/latex.cgi?a - тот самый единичный вектор.
Ваша старая система координат - https://www.cyberforum.ru/cgi-bin/latex.cgi?x_0; y_0; a.
Ваша новая система координат - https://www.cyberforum.ru/cgi-bin/latex.cgi?x_1; y_1; z_1.
То, что в скобках - это скалярное произведение через матрицу Грама, составленную из векторов https://www.cyberforum.ru/cgi-bin/latex.cgi?x_0, y_0, a. Что такое матрица Грама придется почитать (я читал Биклемишев Д. В. "Курс аналитической геометрии и линейной алгебры". Глава "Евклидовы пространства"). Там сложного ничего нет, просто влом записывать.

Вопрос математикам, я все правильно написал?
3
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
23.09.2011, 22:19  [ТС]
Евгений М.,
Спасибо большое за ответ!!! Почитал я предложенную Вами книгу, и честно сказать не чего не понял. Трудно со всем этим разбираться, когда почти 15 лет в математикой сложнее теоремы Пифагора не с чем не сталкивался
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
24.09.2011, 04:53
Матрицы умеете умножать?

Если нет, то можете почитать того-же Биклемишева.
Глава 5. Матрицы и системы линейных уравнений
Параграф 2. Умножение матриц.
п. 1. Символ https://www.cyberforum.ru/cgi-bin/latex.cgi?\Sigma
п. 2. Определение и примеры (читайте примеры).
Если да, то скажите об этом.
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
27.09.2011, 18:30  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Матрицы умеете умножать?

Если нет, то можете почитать того-же Биклемишева.
Глава 5. Матрицы и системы линейных уравнений
Параграф 2. Умножение матриц.
п. 1. Символ https://www.cyberforum.ru/cgi-bin/latex.cgi?\Sigma
п. 2. Определение и примеры (читайте примеры).
Если да, то скажите об этом.
Нет конечно последнее время теоремой косинусов и Пифагора обходился. Это щас приходится весь курс "вышки" вспоминать. почитал что Вы посоветовали, пока темный лес.

Добавлено через 18 часов 49 минут
Евгений М.,
я не могу разобраться. в 6 посте вторая формула. предположим я нашел скалярное произведение векторов, предположим оно получилось 0.6. мне осталось посчитать:

x1 = x0 - 0.6*Z1.
как это посчитать? сперва умножить 0.6 на вектор z1? то есть 0.3078411*0.6, 0.0871557*0.6, 0.9474375*0.6, и потом так же вычесть от каждого значения x0, или по другому?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
27.09.2011, 18:44
Цитата Сообщение от alllexx Посмотреть сообщение
то есть 0.3078411*0.6, 0.0871557*0.6, 0.9474375*0.6
Да. Мы получим вектор с такими координатами.

Цитата Сообщение от alllexx Посмотреть сообщение
потом так же вычесть от каждого значения x0, или по другому?
Взять 1,2,3-ые координаты x0 и вычесть 1,2,3 координаты от 0.6*z1 соответственно.
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
27.09.2011, 22:34  [ТС]
Вроде разобрался как что делать, но получается не то что мне надо. Условие, что ось X новой системы координат должна лежать в плоскости XOZ не выполняется.
На сколько я понял строится новая матрица системы координат.
вот результат.

0,905234 -0,02683 -0,29166
0 0,991609 -0,091219
0,3078411 0,0871557 0,9474375
получается что ось Y лежит в оси YOZ

А должен быть результат:
Направление оси X (X,Y,Z) = (0.951057, 0.000000, -0.309017)
Направление оси Y (X,Y,Z) = (-0.026933, 0.996195, -0.082890)
Направление оси Z (X,Y,Z) = (0.307841, 0.087156, 0.947438)

я может конечно ошибся в расчетах.

Программу писал в C#, полученные вектора проверял в специальной графической программе, у новой системы координат между осями 90 градусов, не удовлетворяет одному условию, описанному выше.
Что можно еще сделать?

Добавлено через 34 минуты
Евгений М.,
Вроде я догадался что надо сделать, наод не как Вы описали в 6 посте рассчитывать в последовательности Z-> X ->Y, надо Z->Y->X, и тогда практически получается то , что надо.
Вот результат:
0,904509 0 -0,293893
-0,02683 0,992404 -0,082575
0,3078411 0,0871557 0,9474375
А теперь осталось самое главное, как углы поворота посчитать?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.09.2011, 02:28
Цитата Сообщение от alllexx Посмотреть сообщение
как углы поворота посчитать?
См. вложение. Потом находите https://www.cyberforum.ru/cgi-bin/latex.cgi?arccos(cos(\varphi)). Это будет угол.
Вместо a,b вставьте
https://www.cyberforum.ru/cgi-bin/latex.cgi?x_1, x_0
https://www.cyberforum.ru/cgi-bin/latex.cgi?y_1, y_0
https://www.cyberforum.ru/cgi-bin/latex.cgi?z_1, z_0 соответственно.
Миниатюры
Расчет углов поворота  
1
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.09.2011, 02:42
Цитата Сообщение от alllexx Посмотреть сообщение
Вот результат:
0,904509 0 -0,293893
-0,02683 0,992404 -0,082575
0,3078411 0,0871557 0,9474375
Кстати, после такого процесса, который я описывал в 6-ом сообщении этой темы, полученные векторы не обязаны быть единичными. Чтобы получить единичные векторы, нужно координаты векторов поделить на длину вектора. Длина вычисляется по формуле 3 из пред. сообщения.
1
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
28.09.2011, 15:09  [ТС]
все отлично получилось!!! только углы поворота похоже по другому считаются, ну да ладно, с этим сам разберусь. большое спасибо!!!
только еще вопрос, есть точка с координатами xyz, от старой системы координат. как перевести координаты точки в новую систему координат?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
29.09.2011, 09:40
Сначала читаем это: Найти матрицу линейного оператора
Это полностью к Вам относится.
Далее https://www.cyberforum.ru/cgi-bin/latex.cgi?\Sigma уможаете на матрицу-столбец составленый из координат этой точки и получаете координаты в новой системе координат.

ЗЫ: Базисные вектора - это (грубо говоря) вектора из которых делается система координат.
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
30.09.2011, 11:38  [ТС]
Евгений М.,
Это полностью к Вам относится
Тоесть получается в моей "новой" матрице надо поменять столбцы со строками? если так, то не выходит. А если матрицу оставит как прежде, то все получается. Но есть одно "НО".
У меня есть возможность проверить мои расчеты в программе UGS NX, в принципе под нее эти расчеты и делались. Когда я проверяю расчеты в этой программе, получается что у новой системы координат матрица с единичными веками совпадает с матрице рассчитанной программой, гдето до 5 знака после запятой. А точка, если она с небольшими координатами , например x=2 y=2 z=2, то отличается от расчета в UGS где то начиная с 5 знака, а если у точки координаты например 100,100,100, то вообще числа разные.

я проверяю свои расчеты, но может надо другой метод расчета взять?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
30.09.2011, 17:54
Цитата Сообщение от alllexx Посмотреть сообщение
Тоесть получается в моей "новой" матрице надо поменять столбцы со строками?
Писать векторы в строку в данном случае - нельзя.

Цитата Сообщение от alllexx Посмотреть сообщение
получается что у новой системы координат матрица с единичными веками совпадает с матрице рассчитанной программой, гдето до 5 знака после запятой.
Не понял.
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 11
18.10.2011, 09:42  [ТС]
Евгений М.,
тут работы было полно, не до расчетов было
вроде все у меня получилось, и матрицу литейного пространства (или как она там называется) получилась, и координаты.
Я еще метод один узнал, как построить матрицу поворота. Через формулу плоскости получаем координаты вектора, по которой направлена ось Х новой системы координат, а затем через произведение векторов находим ось Y.
Только вопрос с углами остался. угол относительно осей X и Y получается правильный, но без знака. Как мне определить знак. Знак зависит от того как происходит поворот: по часовой стрелки +, против -
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2011, 09:42
Помогаю со студенческими работами здесь

Соединение графиков углов поворота звеньев после интерполяции куб. полиномом с промежуточной точкой
Доброго времени суток! Нужна помощь! Есть функции углов поворота звеньев q(t) двухзвенного манипулятора после интерполяции кубическим...

Расчет угла поворота
Здравствуйте. Требуется найти угол поворота моста(Мостом на картинке обозначена линия).Мост может двигаться по часовой стрелке на 190...

Расчет углов в градусах
Здравствуйте.У меня было задание рассчитать периметр,площадь и значение углов(в градусах) треугольника,заданного координатами его вершин в...

Расчет углов. Задание манипулятор
Доброго времени суток. Это моя 1 тема на форуме поэтому не судите строго. Учу c# самостоятельно и не долго. Прохожу задания вот на этом...

Расчет углов между нормалями и прямой
Доброго времени суток, уважаемые форумчане. У меня есть программа в которой по осям можно вращать куб. В неё нужно добавить следующее: 1)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru