Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/55: Рейтинг темы: голосов - 55, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 6
1

Расчет угла наклона плоскости через углы наклона к осям координат и обратно

13.12.2018, 19:08. Показов 10696. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер уважаемые математики, возможно вам нетрудно будет подсказать ламеру пару формулок. Уже пару дней сижу над решением прикладной задачи.
Есть структура (плоскость) и углы наклона этой структуры к горизонту относительно осей Y (pitch) и X (roll). требуется найти общее наклонение (tilt) и его направление (tilt direction). Вроде-бы все просто, я нашел две разные формулы для tilt=atan(sqrt(tan(pitch)^2+tan(roll)^2)) или acos*(cos(pitch)*cos(roll)), но дело в том, что обе формулы дают разные результаты при больших углах (15-25 и более градусов) и при обратном пересчете из общего наклона в наклон по осям ни в одном случае не получается начальных результатов. К примеру если углы по осям 15 и 25 градусов перевести туда-обратно, то в одном случае выходит 15 и 25.77, а со второй формулой 15,47 и 24,76.
может у кого-нибудь есть проверенный калькулятов для перевода туда-обратно? или формулка? к сожалению в школе учился плохо и сам соображаю туго
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2018, 19:08
Ответы с готовыми решениями:

Изменение координат прямой при изменение угла наклона
Есть прямая координаты точек то есть линия лежит на оси х как изменятся координаты если один конец...

Вычисление угла наклона одной прямой относительно другой
Как узнать угол наклона одной прямой относительно другой, если обе прямые заданы координатами двух...

Найдите угол наклона бокового ребра к плоскости основания
Высота правильной треугольной пирамиды равна 1, а сторона основания - 3. Найдите угол наклона...

Найти угол наклона бокового ребра к плоскости основания
Задача 2: В правильной треугольной пирамиде угол между боковыми гранями равен δ. Найти угол...

12
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
13.12.2018, 19:47 2
пробуйте углы брать в радианах
0
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 6
13.12.2018, 19:59  [ТС] 3
Не, это я не упустил. Все углы переводятся в радианы при вычислении в экселе, здесь просто не стал писать экселевские формулы, ибо выглядят громоздко.
0
Эксперт по математике/физике
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
13.12.2018, 20:23 4
Цитата Сообщение от Гидрограф Посмотреть сообщение
требуется найти общее наклонение (tilt) и его направление (tilt direction)
Что это такое? Наклон данной плоскости к плоскости ХОY? "Его направление" что такое?
0
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 6
14.12.2018, 06:31  [ТС] 5
Цитата Сообщение от jogano Посмотреть сообщение
Что это такое? Наклон данной плоскости к плоскости ХОY? "Его направление" что такое?
наклон плоскости это угол между плоскостью и горизонтом, или угол между вектором перпендикулярным плоскости и вертикалью. а направление это горизонтальный угол между осью Y и проекцией вектора перпендикулярного данной плоскости на горизонт XOY.
0
Эксперт по математике/физике
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
14.12.2018, 07:52 6
Для начала договоримся о величинах углов, как это принято в математике. В пространстве
- угол между двумя прямыми (или двумя плоскостями, или прямой и плоскостью) всегда от 0 до 90 градусов, то есть берётся меньший угол
- угол между прямой (или плоскостью) и вектором тоже от 0 до 90 градусов.
- угол между двумя векторами от 0 до 180 градусов
Удобно выражать ваши углы через углы Эйлера - это три угла https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha ,\beta ,\gamma между нормалью к плоскости и направлениями OX+, OY+, OZ+ соответственно, то есть между двумя векторами. Т.о., эти три угла могут лежать от 0 до 180 каждый и выполняется соотношение https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos ^2 \alpha + \cos ^2 \beta +\cos ^2 \gamma=1, а само уравнение плоскости, проходящей через начало координат, имеет вид https://www.cyberforum.ru/cgi-bin/latex.cgi?x \cos \alpha + y \cos \beta +z\cos  \gamma=0
Теперь выразим ваши углы через углы Эйлера. Так как
Цитата Сообщение от Гидрограф Посмотреть сообщение
проверенный калькулятов
нет, то мне проще вывести.
Если нарисовать горизонтальную плоскость и пересечь её какой-то прямой (осью ОХ, например) с направлением на этой прямой вверх, то если нормальный вектор плоскости направлен тоже вверх, то угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha от острый, а ваш угол ... не понимаю ваших английских терминов... назовём его по первой букве r будет дополняющий к углу https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha до 90 градусов, то есть https://www.cyberforum.ru/cgi-bin/latex.cgi?r=90^\circ-\alpha. А если вектор нормали направлен вниз, то угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha тупой, но угол r всё равно острый (как угол между прямой и плоскостью, вы так написали), тогда https://www.cyberforum.ru/cgi-bin/latex.cgi?r=\alpha-90^\circ. Таким образом, получаем формулу
(1) https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos r=\sin \alpha >0
Аналогично, рассмотрев ось ОY с теми же рассуждениями, получаем формулу
(2) https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos p=\sin \beta  >0
Теперь о наклоне данной плоскости к XOY. Найдём угол между нормалью данной плоскости и нормалью к XOY, то есть между https://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{n}=\bar{\left( \cos \alpha ; \cos \beta ; \cos \gamma\right) } и https://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{\left( 0; 0 ;1\right) }. Это два орта (векторы единичной длины), поэтому косинус угла между ними равен https://www.cyberforum.ru/cgi-bin/latex.cgi?\left(\bar{\left( \cos \alpha ; \cos \beta ; \cos \gamma\right) }, \bar{\left( 0; 0 ;1\right) }\right)=\cos \gamma. Но https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma может быть тупым, а угол между плоскостями острый, поэтому будем сравнивать не косинусы, а синусы, и получаем формулу
(3) https://www.cyberforum.ru/cgi-bin/latex.cgi?\sin t = \sin \gamma >0
Для определения "направления проекции", как вы выразились (угол d), причём по отношению к направлению OY+ (а не OX+ почему-то, но не суть) найдём угол между проекцией нормали к вашей плоскости на XOY и направлением OY+, то есть между векторами https://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{\left(\cos \alpha ; \cos \beta ; 0 \right)} и https://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{\left(0;1 ;0 \right)}. Косинус этого угла равен https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\left( \bar{\left(\cos \alpha ; \cos \beta ; 0 \right)}, \bar{\left(0;1 ;0 \right)}\right)}{\sqrt{\cos^2 \alpha + \cos^2 \beta}}=\frac{\cos \beta }{\sqrt{\cos^2 \alpha + \cos^2 \beta}}. Проекция нормали на XOY это уже не единичный вектор, поэтому в знаменателе его длина. Используя то, что сумма квадратов косинусов углов Эйлера равна 1, получаем, что
(4) https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos d=\frac{\cos \beta }{\sqrt{\cos^2 \alpha + \cos^2 \beta}}=\frac{\cos \beta }{\sqrt{1-\cos^2 \gamma }}=\frac{\cos \beta }{\sin \gamma }. (https://www.cyberforum.ru/cgi-bin/latex.cgi?\sin \gamma >0 как синус угла от 0 до 180, поэтому модуль синуса не пишем).
Получили систему из 4-х уравнений, в которой нужно исключить углы Эйлера, оставив только ваши углы r,p,t,d.
1
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 6
14.12.2018, 13:55  [ТС] 7
Уважаемый jogano, большое спасибо за подробный ответ.
Исходя из обозначений которые вы применили, мне даны углы r и p, между плоскостью и направлениями OX+, OY+, OZ+. таким образом легко найти углы https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha=90+r и https://www.cyberforum.ru/cgi-bin/latex.cgi?\beta=90+p. полученные углы будут от 90 до 180 градусов если r/p>0 и от 0 до 90 в случае отрицательных r и p.
Угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma между нормалью к данной плоскости и осью OZ+(она-же нормаль к горизонту). в целом этот угол и нужно найти, (практически r и p варьируются в пределах +-90 градусов, то угол может быть только острый (или 90)).
я попробовал расчитать его из формулы https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos ^2 \alpha + \cos ^2 \beta +\cos ^2 \gamma=1, перекинув ее в https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos \gamma=sqrt{1-\cos ^2 \alpha - \cos ^2 \beta} и взяв оттуда арккосинус получить угол, но похоже этот метод не работает, так как при определенных углах сумма квадратов косинусов будет больше единицы, да и при углах r и p равных 45 градусов,углы https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha и https://www.cyberforum.ru/cgi-bin/latex.cgi?\beta будут по 135 градусов что даст https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma=90градусов (но вектор нормали в этом случае не будет перпендикулярен оси OZ+)

вот как считать https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma через https://www.cyberforum.ru/cgi-bin/latex.cgi?  \left(\bar{\left( \cos \alpha ; \cos \beta ; \cos \gamma\right) }, \bar{\left( 0; 0 ;1\right) }\right)=\cos \gamma. я, честно говоря не понял. Ведь и в левой и в правой частях уравнения надо знать https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma

https://www.cyberforum.ru/cgi-bin/latex.cgi?\cos d=\frac{\cos \beta }{\sqrt{\cos^2 \alpha + \cos^2 \beta}} считает направление, и (после небольших танцев со знаками) вроде даже правильно, но попытка расчитать гамма по формуле https://www.cyberforum.ru/cgi-bin/latex.cgi?sin\gamma =cos\beta /cosd везет те-же проблемы что и через сумму квадратов углов.

Сильно подозреваю что что-то я делаю не так, может заметите?
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
14.12.2018, 14:25 8
Красная стрелка X, зеленая Y, синяя Z.
Расчет угла наклона плоскости через углы наклона к осям координат и обратно

Точку A(0,0,1) повернули вокруг OX на угол pitch
затем повернули вокруг OY на угол roll получили A1.

Угол между векторами A1,A это tilt?
Проекция A1 на XOY точка A2.
Задали точка B(0,1,0).
Угол между векторами A2,B это tilt direction?

Все что тут нужно "угол между векторами"
http://www.webmath.ru/poleznoe/formules_13_9.php
и координаты точки A(0,0,1) после всех поворотов назвал A1.

Странные у вас формулы только углы играют...где вы их взяли хз.
откуда тут система 4 уравенений хз…
может возможно еще проще без векторов, есть 3 вершины треугольника, найти угол.
Тут можно поискать
https://ru.wikipedia.org/wiki/... угольников
1
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 6
14.12.2018, 16:29  [ТС] 9
Уважаемый Excalibur921, большое спасибо за ответ.

Вы совершенно правильно определили углы на схеме. Я взял точку с координатами 0,0,1 (А), развернул ее на углы 25 градусов вокруг OX и 35 вокруг ОУ, таким образом углы Эйлера получились https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha=125 ; \beta =115 . для разворота использовал формулы Эйлера, которые собезъяничал несколько месяцев назад для других расчетов). получил координаты А1 и по формуле из 1-й ссылки нашел угол межде вектором к точке А1 и вектором 0,0,1. В итоге у меня получился tilt (он-же https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma) 42.06340643 градуса. Это точно совпадает с одной из формул которые кем-то были составлены до меня ) - https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma=acos(cos(pitch)*cos(roll)). но если сложить квадраты косинусов углов https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha ,\beta, \gamma то выходит 1,0586 вместо 1. Что собственно и смущает.

Правильно-ли я понимаю, что для получения координат точки A2 надо взять А1 и заменить координату Z на ноль, дабы вычислить Tilt direction?

И как провернуть обратный расчет из tilt (https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma)) и tilt direction в pitch/roll?
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
14.12.2018, 16:34 10
По-моему, начинать надо с определений. Даже углы Эйлера в разных книгах определяются по-разному.
Если у вас разные формулы дают разные результаты, значит они выведены в разных предположениях, для разных типов координат. Системы крен-тангаж и крен-дифферент это РАЗНЫЕ системы. Объяснение "углы наклона этой структуры к горизонту относительно осей Y (pitch) и X (roll)" ничего не объясняет и даже затуманивает. pitch это вполне определенный термин. Скорее всего это тангаж. А может и дифферент. Посмотрите в учебниках, как он определяется. Как пример, я видел определение нескольких таких систем в учебнике Лойцянский, Лурье - Теоретическая механика 1 т. Если вы предпочитаете англоязычную литературу, то ищите определения и формулы в книгах по механике твердого тела, теории гироскопов и т. д.
1
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
14.12.2018, 18:47 11
Цитата Сообщение от palva Посмотреть сообщение
начинать надо с определений.
Нет. Начать нужно с изначальной задачи, зачем все это и почему так странно\сложно\заумно.
Цитата Сообщение от Гидрограф Посмотреть сообщение
формулы Эйлера, которые собезъяничал несколько месяцев назад для других расчетов).
Каша из методов поворота точки в 3д есть на википедии
https://ru.wikipedia.org/wiki/Матрица_поворота
Цитата Сообщение от Гидрограф Посмотреть сообщение
взять А1 и заменить координату Z на ноль
Да.
Цитата Сообщение от Гидрограф Посмотреть сообщение
И как провернуть обратный расчет из tilt ()) и tilt direction в pitch/roll?
Хз…они совсем другие.
Зачем вам вообще все эти извращения с эйлером,pitch,roll,tilt,tilt direction?
Зачем такие сложности? Там еще шарнирный замок…

Берите “матрицу поворота вокруг произвольной оси в 3д” по ссылке выше.
Задаете ось поворота и угол. Множите вектор на матрицу и вуаля…крутим что угодно и как угодно.

Добавлено через 20 минут
Как-то так:
A повернули на pitch получили A1
A1 повернули на roll получили A2

tilt это угол между A и A2
tilt direct угол между (0,1,0) и (xA2,yA2,0)

Есть точка повернутого тела A2.
найти roll это угол между A и (xA2,0,zA2)
pitch хитрый, нужно повернуть A2 на угол -roll получим A1
pitch это угол между A и A1.
Извращение еще то...и непонятно зачем это надо.
0
0 / 0 / 0
Регистрация: 13.12.2018
Сообщений: 6
15.12.2018, 06:57  [ТС] 12
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Нет. Начать нужно с изначальной задачи, зачем все это и почему так странно\сложно\заумно.
Ну если уходить к истокам, то на морское дно ставится структура, что-то типа здорового ящика 20х10 метров. Датчиками измеряется ее наклон относительно горизонта. Датчики показывают именно наклон осей структуры - оси Y она-же зад/перед (pitch) и оси X лево/право (roll). кстати аглицкие термины именно от буржуйских датчиков.

Так как просто ради хохмы на дно ничего не ставят, структура имеет практическое назначение, для чего оборудована кучей разных фланцев, для подключения различных труб с газом, нефтью и прочими полезностями. Причем ось Y (перед) фланца совсем не обязательно паралельна оси Y структуры, а может быть и перпендикуляра. или под любым другим углом. (соответсвенно оси Х тоже расположены под углами, а Z считается условно паралельными)

Собственно и требуется зная исходные данные в виде наклона всей конструкции по осям Y и Х, а также угол между осями Y структуры и Y1 фланца, определить углы наклона осей фланца над горизонтальной поверхностью.

Ну и как делалось это прежде - это считался общий наклон структуры (tilt, он-же угол между нормалью к плоскости структуры и вертикалью https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma ) и угол между направлением наклона и осью Y (tilt direction ) потом этот tilt directiction разворачивался дополнительно на угол между осями Y и Y1, и подсчитанный ранее tilt и свежеполученный tilt direction2 разкладывался на углы наклона над горизонтом pitch1 и roll1.

Но я заметил что формулы которые используются не работают при больших углах наклона. к примеру если допустить что оси Y и Y1 совпадают, и начальные углы pitch и roll к примеру 15 и 25 градусов после перевода туда-обратно становятся 15 и 25.77. и мне стало интересно почему собственно.

С практической точки зрения, старые формулы работают ОК, потому как углы обычно не превышают 2 градусов, и погрешность формул на при этих значениях меньше погрешности измерительного устройства. Здесь больше мой личный интерес, я когда начал копать не думал что так запарно все, а потом уже стало интересно.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
15.12.2018, 12:58 13
Вроде так пашет:
Повернуть на –pitch ось Y, затем повернуть ось Y в нужную сторону на угол между Y и Y1. Это задаст ориентацию Y1.
Повернуть –roll ось X, затем повернуть эту ось X в нужную сторону снова на угол между Y и Y1. Это задаст ориентацию X1.
Векторное произведение X1 на Y1 или Y1 на X1(зависит от того куда смотрит ось X) задаст ориентацию Z1.

Зачем тут tilt и tilt direct хз…
0
15.12.2018, 12:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2018, 12:58
Помогаю со студенческими работами здесь

Найти угол наклона боковой грани до плоскости основания
Помогите пожалуйсто, никак не могу решить... Задача 1: В правильной четырехугольной пирамиде...

Задан вектор с координатами (х, у, z); найти углы наклона этого вектора к координатным осям
Задан вектор с координатами (х, у, z)- Найти углы наклона этого вектора к координатным осям.

Задан вектор с координатами (х, у, z)- Найти углы наклона этого вектора к координатным осям
Задан вектор с координатами (х, у, z)- Найти углы наклона этого вектора к координатным осям.

Задан радиус-вектор с координатами (X, Y, Z). Найти углы его наклона к координатным осям
Задан радиус-вектор с координатами (X,Y,Z).Найти углы наклона этого радиус-вектора к координатным...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru