1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 2

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

10.02.2025, 22:29. Показов 8721. Ответов 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
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 2
13.02.2025, 09:43  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от u235 Посмотреть сообщение
Хочет чтобы ему все приподнесли на блюдечке, а сам он палец о палец не ударит.
Да, хочет. Да, не ударит Ну а почему он должен рыться в академических книгах? Это явно "не тот случай" когда надо туда лезть. А препод тогда для чего? Почему он не объясняет простую вещь?
Цитата Сообщение от Python_Val Посмотреть сообщение
Дайте им пример:
Это нормально и полезно, но тогда надо честно сказать: "принимаем без доказательств"

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

Решение

Igor3D, ну что тут сложного? Рассмотрим вектор, исходящий из начала координат длины r и составляющий с осью абсцисс угол a. Координаты конца этого вектора будут x=r*cos(a); y=r*sin(a). Это понятно? Если да - подтвердите, и мы пойдем дальше.
0
wound up as Aussie
541 / 126 / 21
Регистрация: 15.05.2019
Сообщений: 539
13.02.2025, 11:48
Цитата Сообщение от Igor3D Посмотреть сообщение
Ладно, есть еще предложения? Нет? Странно, ведь мы все просто обожаем поучать других Кстати, а где профессиональные преподы? Неужели их здесь нет?
Если Вы спрашиваете геометрический смысл, то это (новые координаты точки, по идее) проекция точки, находящейся на окружности, на линию (которой принадлежит радиус - это гипотенуза которая ).
Причём максимум длины отрезка (для игрека, когда плюс) будет когда угол "гипотенузы" 45 градусов, и точка будет лежать за пределами окружности.
Ps: т.е. новая точка - это проекция старой точки (на дуге) на линию которой принадлежит единичный радиус.
(я так думаю).
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,745
Записей в блоге: 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
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 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
5524 / 2877 / 572
Регистрация: 07.11.2019
Сообщений: 4,773
13.02.2025, 13:09
Цитата Сообщение от Igor3D Посмотреть сообщение
Ну а почему он должен рыться в академических книгах?
Хотя бы потому, что это он сам лично решил поступить в ВУЗ и учиться в нем. Это как бы в его интересах. Это в школе учат, а в ВУЗах - учатся. И то, даже в школах, бывают материалы/задания на самостоятельное изучение, например доклад/реферат на тему, где никто никому не разжевывает.
1
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 2
13.02.2025, 13:13  [ТС]

Не по теме:

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



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

Не по теме:

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

0
13.02.2025, 13:19

Не по теме:

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

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,745
Записей в блоге: 14
13.02.2025, 16:03
Igor3D, почему же "на троечку"? Отличный ответ. Кстати, эти формулы можно (если забыли формулы для синуса суммы и косинуса суммы) использовать для вывода этих формул. Матричное умножение запомнить легче.
0
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 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
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,745
Записей в блоге: 14
13.02.2025, 17:07
Цитата Сообщение от Igor3D Посмотреть сообщение
Главного нет, эти формулы гораздо мощнее
- что имеется в виду?

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

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

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

Объясните формулы "матрица вращения на плоскости"   Объясните формулы "матрица вращения на плоскости"  
0
59 / 59 / 4
Регистрация: 10.06.2023
Сообщений: 931
14.02.2025, 09:35
cos(a - b) = cos(a) * cos(b) + sin(a) * sin(b)
Действительно красиво! Сами нашли (поздравляю!) или где-то увидели?
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,483
14.02.2025, 12:45
VAF34, эту красоту в средней школе преподают. В девятом классе.
0
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 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
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,745
Записей в блоге: 14
14.02.2025, 17:34
Igor3D, вращения даже трехмерного пространства (не говоря уже о бОльших размерностях) - более сложная задача. Имеет место замечательная теорема примерно такого содержания "Два поворота вокруг двух векторов, исходящих из начала координат эквивалентны повороту на некоторый угол вокруг некоторого вектора". Найти этот вектор и этот угол - довольно сложная задача. И здесь очень может помочь алгебра кватернионов.
0
1 / 1 / 0
Регистрация: 12.07.2016
Сообщений: 37
14.02.2025, 22:05
Когда-то, чтобы понять эту тему, я сел писать эту статью:
Когда немного с gamedev-ом соприкасаешься, то эта тема всплывает и становится более очевидной, на мой взгляд.
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,483
15.02.2025, 00:10
Цитата Сообщение от Igor3D Посмотреть сообщение
Где? Плиз "ткните носиком". Напомню что речь идет о доказательстве формулы
Для начала, извиняюсь. Не в девятом, а в десятом классе. Ну, перепутал, в моё время это в девятом классе преподавали, если мне правильно память изменяет.

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



И, да, как и сказано, доказательство в конце параграфа есть. Выложить?
0
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,032
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru