С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2

Объясните формулы "матрица вращения на плоскости"

10.02.2025, 22:29. Показов 8096. Ответов 109
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости".

x' = x * cos(a) - y * sin(a)
y' = y * cos(a) + x * sin(a)

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

Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2025, 22:29
Ответы с готовыми решениями:

Угловая скорость вращения тела на плоскости
Добрый день! У меня простая задача, просто хочу уточнить, правильно ли я понимаю решение. Есть вращение диска на плоскости вокруг своей...

Поверхность вращения. Построение двумерного графика в 3д плоскости.
Задание:отобразить в левой системе координат поверхность вращения вокруг оси OZ кривой z=4/x^2 при y=0. У меня проблема с построением...

Матрица вращения
Здравствуйте! Я совсем молодой пользователь МатЛаба. Возникла проблема с решением задачи в матлабе. Нужно используя ротационную...

109
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2
13.02.2025, 09:43  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от u235 Посмотреть сообщение
Хочет чтобы ему все приподнесли на блюдечке, а сам он палец о палец не ударит.
Да, хочет. Да, не ударит Ну а почему он должен рыться в академических книгах? Это явно "не тот случай" когда надо туда лезть. А препод тогда для чего? Почему он не объясняет простую вещь?
Цитата Сообщение от Python_Val Посмотреть сообщение
Дайте им пример:
Это нормально и полезно, но тогда надо честно сказать: "принимаем без доказательств"

Ладно, есть еще предложения? Нет? Странно, ведь мы все просто обожаем поучать других Кстати, а где профессиональные преподы? Неужели их здесь нет? Выходит мне самому надо ответить... (так ведь запинают )
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38166 / 21101 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
13.02.2025, 11:36
Лучший ответ Сообщение было отмечено Igor3D как решение

Решение

Igor3D, ну что тут сложного? Рассмотрим вектор, исходящий из начала координат длины r и составляющий с осью абсцисс угол a. Координаты конца этого вектора будут x=r*cos(a); y=r*sin(a). Это понятно? Если да - подтвердите, и мы пойдем дальше.
0
wound up as Aussie
326 / 107 / 19
Регистрация: 15.05.2019
Сообщений: 438
13.02.2025, 11:48
Цитата Сообщение от Igor3D Посмотреть сообщение
Ладно, есть еще предложения? Нет? Странно, ведь мы все просто обожаем поучать других Кстати, а где профессиональные преподы? Неужели их здесь нет?
Если Вы спрашиваете геометрический смысл, то это (новые координаты точки, по идее) проекция точки, находящейся на окружности, на линию (которой принадлежит радиус - это гипотенуза которая ).
Причём максимум длины отрезка (для игрека, когда плюс) будет когда угол "гипотенузы" 45 градусов, и точка будет лежать за пределами окружности.
Ps: т.е. новая точка - это проекция старой точки (на дуге) на линию которой принадлежит единичный радиус.
(я так думаю).
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38166 / 21101 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
13.02.2025, 11:50
Доворачиваем наш вектор на угол b. В результате угол нового (повёрнутого) вектора с осью абсцисс будет, естественно, a+b.
Координаты конца получатся x'=r*cos(a+b), y'=r*sin(a+b).
Теперь воспользуемся формулами для синуса и косинуса суммы. Получим:

x'=r*cos(a+b)= r*cos(a)*cos(b)-r*sin(a)*sin(b)= x*cos(b)-y*sin(b). Здесь х - абсцисса конца вектора до поворота. С ординатой - аналогично...
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2
13.02.2025, 12:47  [ТС]
Ладно, вот как бы я дал "под запись"
Кликните здесь для просмотра всего текста
1.
x' = x * cos(a) - y * sin(a)
y' = x * sin(a) + y * cos(a)

Эти формулы могут быть использованы для поворота 2D вектора/координаты (x, y) вокруг точки (0, 0) на угол a. Положительный угол соответствует вращению против часовой стрелки. Говорят также CCW (CounterColckWise)

2. Доказательство/обоснование. Данные формулы легко получаются из тригонометрических для суммы углов

cos(a + b) = cos(a) * cos(b) - sin(a) * sin(b)
sin(a + b) = cos(a) * sin(b) + sin(a) * cos(b)

В равенствах умножим обе части на r - длину вектора (x, y) и заменим параметрические координаты на декартовы

x = r * cos(b)
y = r * sin(b)

x' = r * cos(a + b)
y' = r * sin(a + b)

3. Данные формулы часто записываются в виде матрицы
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}cos(a)& -sin(a)\\sin(a) & cos(a)\end{pmatrix}
Важно: данная запись в нотации "column major" широко используемой во многих приложениях, напр OpenGL. Матрица применяется "слева", т.е. строка матрицы множится на вектор-столбец (трансформируемой) координаты

Цитата Сообщение от Catstail Посмотреть сообщение
Рассмотрим вектор, исходящий
Да, именно этого ответа я ждал Вот есть нормальные преподы! (Вы же препод?)
Цитата Сообщение от Catstail Посмотреть сообщение
..и мы пойдем дальше.
А давайте! Оцените мой ответ. По-моему "на троечку", а то и меньше. Самое главное (вернее - самое ценное) я не рассказал
1
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
13.02.2025, 13:09
Цитата Сообщение от Igor3D Посмотреть сообщение
Ну а почему он должен рыться в академических книгах?
Хотя бы потому, что это он сам лично решил поступить в ВУЗ и учиться в нем. Это как бы в его интересах. Это в школе учат, а в ВУЗах - учатся. И то, даже в школах, бывают материалы/задания на самостоятельное изучение, например доклад/реферат на тему, где никто никому не разжевывает.
1
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2
13.02.2025, 13:13  [ТС]

Не по теме:

Да, забыл сказать: я создал эту тему увидев эту статью. Как я понял, автор - гуманитарий, ему нужно как бы "мыслить образами", это нужно понимать. Объяснения я, правда, "ни асилил", но стало интересно, может и еще как-то можно?



Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от u235 Посмотреть сообщение
Хотя бы потому, что это он сам лично решил поступить в ВУЗ и учиться в нем. Это как бы в его интересах. Это в школе учат, а в ВУЗах - учатся. И то, даже в школах, бывают материалы/задания на самостоятельное изучение, например доклад/реферат на тему, где никто никому не разжевывает.
Как-то это напоминает материалы XXV съезда, много "надо" и "должен", но всем было понятно что делать этого никто не будет

0
13.02.2025, 13:19

Не по теме:

Цитата Сообщение от Igor3D Посмотреть сообщение
ак-то это напоминает материалы XXV съезда, много "надо" и "должен", но всем было понятно что делать этого никто не будет
Тогда зачем за него переживать? Одним студентом меньше, одним больше, для преподавателя без особой разницы. Спасение утопающих - дело рук самих утопающих.

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38166 / 21101 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
13.02.2025, 16:03
Igor3D, почему же "на троечку"? Отличный ответ. Кстати, эти формулы можно (если забыли формулы для синуса суммы и косинуса суммы) использовать для вывода этих формул. Матричное умножение запомнить легче.
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2
13.02.2025, 16:35  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Кстати, эти формулы можно (если забыли формулы для синуса суммы и косинуса суммы) использовать для вывода этих формул.
Видел красивое доказательство:

cos(a - b) = cos(a) * cos(b) + sin(a) * sin(b)

Это же просто скалярное произведение векторов v1 = (cos(a), sin(a)) и v2 = (cos(b), sin(b)). А для синуса получается векторное. А потом через нечет синуса получаем суммы

Кстати, MallSerg крутился близко от решения, интуиция у паренька хорошая

Цитата Сообщение от Catstail Посмотреть сообщение
почему же "на троечку"?
Главного нет, эти формулы гораздо мощнее
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38166 / 21101 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
13.02.2025, 17:07
Цитата Сообщение от Igor3D Посмотреть сообщение
Главного нет, эти формулы гораздо мощнее
- что имеется в виду?

Добавлено через 3 минуты
Цитата Сообщение от Igor3D Посмотреть сообщение
Да, забыл сказать: я создал эту тему увидев эту статью.
- статья мусорная. Читать ее не надо.

Формула поворота плоскости есть частый случай поворота пространства Rn вокруг начала координат.
0
wound up as Aussie
326 / 107 / 19
Регистрация: 15.05.2019
Сообщений: 438
14.02.2025, 00:45
Цитата Сообщение от Igor3D Посмотреть сообщение
Видел красивое доказательство:
Посмотрел я в чат gpt, там очень похоже.
Миниатюры
Объясните формулы "матрица вращения на плоскости"   Объясните формулы "матрица вращения на плоскости"   Объясните формулы "матрица вращения на плоскости"  

0
wound up as Aussie
326 / 107 / 19
Регистрация: 15.05.2019
Сообщений: 438
14.02.2025, 00:54
А вот как ИИ доказал в матричной форме:
Миниатюры
Объясните формулы "матрица вращения на плоскости"   Объясните формулы "матрица вращения на плоскости"   Объясните формулы "матрица вращения на плоскости"  

Объясните формулы "матрица вращения на плоскости"   Объясните формулы "матрица вращения на плоскости"  
0
53 / 54 / 3
Регистрация: 10.06.2023
Сообщений: 775
14.02.2025, 09:35
cos(a - b) = cos(a) * cos(b) + sin(a) * sin(b)
Действительно красиво! Сами нашли (поздравляю!) или где-то увидели?
0
Модератор
10381 / 5668 / 3399
Регистрация: 17.08.2012
Сообщений: 17,313
14.02.2025, 12:45
VAF34, эту красоту в средней школе преподают. В девятом классе.
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2
14.02.2025, 16:00  [ТС]
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
эту красоту в средней школе преподают. В девятом классе.
Разве? Где? Плиз "ткните носиком". Напомню что речь идет о доказательстве формулы

cos(a + b) = cos(a) * cos(b) - sin(a) * sin(b)

Не по теме:

Цитата Сообщение от VAF34 Посмотреть сообщение
Сами нашли
Не сам, где-то видел :)



Добавлено через 1 час 54 минуты
Наверно этот мой пост будет добавлен к предыдущему, хотя в данном случае не хотелось бы смешивать. Ладно, ничего страшного, пусть Cyborg Drone поищет/поразмыслит, а мы пока займемся другим
Цитата Сообщение от Catstail Посмотреть сообщение
Формула поворота плоскости есть частый случай поворота пространства Rn вокруг начала координат.
Охотно верю, тем более я не раз встречал это утверждение. В посте #8 (два слайда) препод пошел именно этим путем. Если я верно понял, есть точка (x, y) в исходной СК (возможно совпадающей с мировой). Выполняется поворот СК на угол phi и находятся координаты той же точки в новой, повернутой СК. Проблема, однако, в том, что эти координаты совсем не равны тем (x', y') что в стартовом посте. По слайдам получается обратное преобразование, как если бы точка повернулась по часовой. Впрочем, переписавший этого даже не заметил

Ну ладно, в конце-концов перебросить знак синуса - не вопрос. Но главное, поворот СК здесь ничего не упрощает и никаких выгод не дает. По-прежнему надо выводить формулы "по чертежу и теореме Пифагора" что совсем не означает "просто". Это легко если перед мордочкой висит "правельный ответ". Отследил цепочку, прикинул, ну.. наверно правильно. Но "с нуля" и без шпаргалки придется попыхтеть минут 10, а то и больше. Отказ от использования известных формул здесь совершенно не оправдан. Видимо лучшее что может сделать студент - опять-таки тупенько запомнить формулы слайдов, на этот раз никому не нужные.

Как же так, ведь идея "поворота пространства" несомненно верная, а выходит коряво, натужно и результат не совсем верен?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38166 / 21101 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.02.2025, 17:34
Igor3D, вращения даже трехмерного пространства (не говоря уже о бОльших размерностях) - более сложная задача. Имеет место замечательная теорема примерно такого содержания "Два поворота вокруг двух векторов, исходящих из начала координат эквивалентны повороту на некоторый угол вокруг некоторого вектора". Найти этот вектор и этот угол - довольно сложная задача. И здесь очень может помочь алгебра кватернионов.
0
1 / 1 / 0
Регистрация: 12.07.2016
Сообщений: 37
14.02.2025, 22:05
Когда-то, чтобы понять эту тему, я сел писать эту статью:
Когда немного с gamedev-ом соприкасаешься, то эта тема всплывает и становится более очевидной, на мой взгляд.
0
Модератор
10381 / 5668 / 3399
Регистрация: 17.08.2012
Сообщений: 17,313
15.02.2025, 00:10
Цитата Сообщение от Igor3D Посмотреть сообщение
Где? Плиз "ткните носиком". Напомню что речь идет о доказательстве формулы
Для начала, извиняюсь. Не в девятом, а в десятом классе. Ну, перепутал, в моё время это в девятом классе преподавали, если мне правильно память изменяет.

Скачал учеюник по алгебре за десятый класс по первой попавшейся ссылке, А. Г. Мордкович, П. В. Семёнов, "Алгебра и начала математического анализа", базовый и углублённый уровни, 10 класс, часть 1, страница 218:



И, да, как и сказано, доказательство в конце параграфа есть. Выложить?
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,798
Записей в блоге: 2
15.02.2025, 02:02  [ТС]
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
И, да, как и сказано, доказательство в конце параграфа есть. Выложить?
Да, выложить. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2025, 02:02
Помогаю со студенческими работами здесь

Матрица вращения
Нужно чтобы вместо Х вращалась буква П. Вот сам код uses crt,graph; const minXm=-100;maxXm=2000; minYm=2000; maxYm=-100; ...

Матрица вращения (X->Y->Z)
Добрый день. Подскажите как составить матрицу вращения, если знаю координаты вектора в начальном и конечном положении.

Метод косоугольного вращения. Матрица поворота
Доброго времени суток. В факторном анализе в статистике есть метод косоугольное вращение. Пишу программу для его реализации и не могу...

Матрица вращения облака точек вида x,y,z
Добрый день господа сочувствующие! Никто не подскажет способ и функционал для матрицы вращения облака точек вида x,y,z. Проще выражаясь...

В какой момент времени после начала вращения платформы груз начнет соскальзывать, объясните как решать
Здравия, соратники! Разъясните,пожалуйста, как решать задачу Google не помог На краю вращающейся платформы радиуса R=1,0 м лежит груз. В...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru