?

Log in

вращение как два отражения - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

вращение как два отражения [ноя. 3, 2014|05:41 pm]
Anatoly Vorobey
[Tags|]

Возьмем какое-то вращение плоскости вокруг одной точки - например, взяли и повернули всю плоскость вокруг точки O на 60° против часовой стрелки. Того же результата можно добиться, проведя одно за другим два отражения плоскости относительно двух прямых линий, проходящих сквозь ту же точку O. Это можно доказать разными способами, но самое простое и интуитивное геометрическое объяснение, которое мне пришло в голову, выглядит так.

Предположим, что мы хотим повернуть плоскость вокруг начала координат O на какой-то угол α против часовой стрелки. Но вместо того, чтобы повернуть плоскость, мы по ошибке взяли и отразили ее относительно какой-то прямой L1, например горизонтальной оси:

draw1

При таком отражении точка A, например, переходит в точку A', и наоборот. Легко видеть, что расстояние до точки O от такого отражения не меняется (OA = OA'). Однако при отражении, в отличие от вращения, разные точки перемещаются на разные углы. Мы хотим, чтобы каждая точка передвинулась на угол α против часовой стрелки, однако при отражении если точка X переходит в точку X', то угол между OX и OX' может быть самый разный. Например, если X лежит на прямой L1, относительно которой мы отражаем, то угол будет ноль градусов, потому что X=X', точка вообще не сдвинется.

Однако из этого рисунка видно, что есть точки, которым уже "повезло": те, которые лежат на луче под углом α/2 ниже горизонтальной прямой, как точка A. Точка A перешла ровно в ту точку A', куда ей нужно было попасть при вращении на угол α: отражение совместило два угла в α/2 и перенесло ее куда надо.

К сожалению, все точки, которые не лежат на этом луче, переходят куда-то в неправильные места:

draw2

Точка B лежит немного "раньше" точки A, если идти против часовой стрелки: скажем, на 5°. При вращении на угол α ей надлежит "недолететь" до точки A' на те же 5°, а вместо этого она "перелетает" на тот же угол и попадает в точку B'. Точка C, наоборот, должна "перелететь" точку A' на 5°, чтобы получилось вращение, а вместо этого отражение заставляет ее "недолететь" в точку C'.

То есть при отражении точка B переходит в B', а точка C в C'. А нам бы поменять местами их места назначения: мы бы хотели, чтобы B переходила в C', а C переходила в B', и тогда все правильно получается. Но значит, если мы сможем поменяем местами сами точки B и C, а потом сделаем отражение относительно L1, то добьемся цели! Сначала B перейдет в C, а потом отразится в C'; и тем же образом C вначале перейдет в B, а потом отразится в B'. Каждая точка окончит свой путь там, где нужно, чтобы получилось точно вращение на угол α. Как же нам поменять их местами? Но это просто: достаточно сделать первоначально отражение всей плоскости относительно прямой OA. Такое отражение как раз поменяет местами B и C (а точку A оставит на месте), после чего отражение относительно прямой L1 обеспечит ровно те "недолеты" и "перелеты", которые нам нужны, и каждая точка пропутешествует на угол α.

Мы никак не пользовались тем, что L1 именно горизонтальная прямая (кроме удобства иллюстрации). Если мы повернем сейчас весь рисунок относительно точки O, то отражение сначала относительно OA, а потом относительно L1 все равно будет давать вращение на угол α. Все, что нужно - это отразить сначала относительно одной прямой сквозь O, а потом относительно другой, составляющей с ней угол α/2 и идущей против часовой стрелки после нее. Если же отражать в обратном порядке, то, понятно, получится вращение на α по часовой стрелке, а не против.
СсылкаОтветить

Comments:
[User Picture]From: nechaman
2014-11-03 04:03 pm
Хорошо
(Ответить) (Thread)
[User Picture]From: spamsink
2014-11-03 04:11 pm
Это красиво, и казалось бы, дает минимум простых операций, но на практике для поворота изображений пользуются тремя сдвигами.
(Ответить) (Parent) (Thread)
[User Picture]From: Roma Lee
2014-11-03 04:13 pm
Сложное какое-то объяснение. Пусть r2 --- образ луча r0 после заданного вращения. Первое отражение берем произвольно, и пусть r1 --- образ r0 после него. Тогда второе отражение нужно брать относительно биссектриссы r1 и r2. Что это поворот --- очевидно Например, можно отражение плоскости понимать как ее поворот в 3-мерном пр-ве и "раскрасить" для наглядности плоскость с разных сторон разными цветами. Что это нужный поворот --- тоже очевидно, т.к. r0 перешел в r2. Или я не понял, чего хочется?
(Ответить) (Thread)
[User Picture]From: avva
2014-11-03 04:27 pm
Что не очевидно из ваших слов - это что "биссектриса r1 и r2" будет всегда один и тот же луч, независимо от выбора r0.
(Ответить) (Parent) (Thread)
[User Picture]From: Roma Lee
2014-11-03 04:33 pm
Ну, единственность второго отражения при фиксированном первом доказать тоже легко от противного. Пусть есть два разных отражения. Тогда ось первого не меняется при первом и меняется при втором --- вот и противоречие. Хотя не понятно, зачем это доказывать. Все равно, пара двух отражений --- не единственна.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: timur0
2014-11-03 04:44 pm
проще доказать в обратном направлении: сначала доказываем, что композиция двух отражений есть поворот относительно точки пересечения осей на удвоенный угол между осями (берем произвольную точку плоскости и рассматриваем ее образы при последовательных отражениях); отсюда следует, что при любом выборе первой оси, проходящей через центр поворота, мы всегда можем выбрать вторую ось (проходит через центр и составляет с первой осью половинный угол), что композиция этих отражений будет нужным поворотом.
(Ответить) (Thread)
[User Picture]From: ilya_dogolazky
2014-11-03 05:05 pm
э..... сегодня типа внеочередное первое апреля?
(Ответить) (Thread)
[User Picture]From: avva
2014-11-03 06:05 pm
что не так?
(Ответить) (Parent) (Thread) (Развернуть)
(Удалённый комментарий)
From: huzhepidarasa
2014-11-03 06:02 pm
Все гораздо проще. Поворот точки x вокруг центра — это умножение на некоторое комплексное число, равное единице по модулю (есть у таких чисел короткое название? что-то не нахожу, пусть называются унитазрными числами), а отражение x относительно какой-то прямой — это опять-таки умножение на какое-то унитарное число, но уже числа, сопряженного x. Что будет, если мы возьмем сопряженное к сопряженному к x, умножая по дороге на унитарные числа? Ото ж.

Какие это должны быть числа, легко вычислить (упражнение для самостоятельной работы в уме).

Edited at 2014-11-03 18:07 (UTC)
(Ответить) (Thread)
[User Picture]From: avva
2014-11-03 06:08 pm
Это все верно, но я не сказал бы, что это гораздо проще. Это требует алгебры и знания о комплексных числах и того, чтобы "умножение на компл. число модуля 1 = поворот" уже было усвоено и интуитивно.
(Ответить) (Parent) (Thread)
From: huzhepidarasa
2014-11-03 06:10 pm
Ну это типа шутка, насчет проще.
(Ответить) (Parent) (Thread)
[User Picture]From: eisenberg
2014-11-03 06:31 pm
Это ещё ладно.
И что поворот+параллельный перенос - это просто поворот, только вокруг какой-то другой точки, это тоже ладно.
А вот что два поворота вокруг разных осей в 3D - это один поворот, уже многим ломает мозг.
(Ответить) (Thread)
[User Picture]From: ilya_dogolazky
2014-11-03 07:14 pm
а как это увидеть на пальцах, без всяких там богомерзких собственных чисел?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: eisenberg
2014-11-03 07:26 pm
Уже не знаю. Кватернионный формализм мне чужд, да он и не проще.
Ну, может, так: вот резиновая утка, её повернули так, а потом эдак. Ясно же, что её не отражали и не растягивали? Значит, даже не зная тех поворотов, мы можем как-то покрутить её в руках и совместить с начальным положением, а потом с конечным. Ну а теперь сделаем переход между ними плавным, насколько возможно. Э, да это у нас один поворот!
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: hyperpov
2014-11-03 10:40 pm
Возьмем глобус, отметим точку и касательный вектор в ней. Скажем, точка A и вектор u. Повернем глобус (любое число раз вокруг любых осей). Пусть наши точка и вектор перешли в B и v соответственно, причем A≠B. Проводим из A и B геодезические в направлении u и v соответстенно до пересечения. Пусть C - точка пересечения. Теперь будем вращать u и v одновременно вокруг соответствующих точек (и соответственно менять точку C), чтобы v оставалось образом u при нашем повороте. Время от времени будем иметь C=A, а время от времени C=B. Т.е. иногда BC>AC, а иногда AC>BC (имеются в виду длины дуг наших геодезических). Отсюда при удачном выборе вектора u мы получим AC=BC. Точка C - неподвижная.

Edited at 2014-11-03 22:41 (UTC)
(Ответить) (Parent) (Thread)
[User Picture]From: xgrbml
2014-11-04 07:56 am
Поворот вокруг оси - композиция симметрий отн. двух плоскостей, проходящих через эту ось. При этом эту пару плоскостей можно поворачивать, как нам удобно. Представим теперь оба поворота таким образом, выбрав пары пл-стей так, чтобы вторая из плоскостей в первой паре содержала обе оси, и такой же была первая пл-сть во второй паре. При композиции симметрии отн. этой плоскости сократятся.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: cousin_it
2014-11-03 07:13 pm
Легче объяснить в радиальных координатах. При отражении относительно прямой, направленной под углом $\alpha$, точка с угловой координатой $\phi$ перейдет в $2\alpha-\phi$. При втором отражении получится $2\beta-(2\alpha-\phi)$, т.е. $2(\beta-\alpha)+\phi$. Сразу видно, что это вращение на удвоенный угол между прямыми.
(Ответить) (Thread)
[User Picture]From: avva
2014-11-03 07:36 pm
Да, но я хотел это увидеть, а не только посчитать. Мне лично формула $2\alpha-\phi$ ничего интуитивного не говорит, т.е. это уже уход в алгебру.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: utnapishti
2014-11-03 07:18 pm
Не кажется ли тебе проще такое рассуждение.
Возьмём какой-нибудь отрезок AB (так чтобы треугольник ABO был невырожденным) и его образ (относительно данного вращения вокруг точки О) A'B'.
Посмотрим на прямую La, серединный перпендикуляр отрезка AA'. |OA|=|OA'|, поэтому La проходит через О.
Отражаем плоскость относительно La. Точка А попадает куда надо (в А'), а точка B - в какую-то точку B*.
Посмотрим на прямую Lb, серединный перпендикуляр отрезка B*B'. |OB|=|OB*|, поэтому Lb проходит через О. |A'B'|=|A'B*|, поэтому Lb проходит через A'.
Отражаем плоскость относительно Lb. Точка А' остаётся на месте, а B* попадает в B'.
Треугольник ABO прокрутился, как было задано - значит, вся плоскость прокрутилась.

(Впрочем, кажется, я процитировал стандартное доказательство...)
(Ответить) (Thread)
[User Picture]From: avva
2014-11-04 09:09 am
А как ты аргументируешь последний шаг (треугольнок прокрутился - значит, вся плоскость прокрутилась)? Я правильно понимаю, что это требует апелляции к отдельной теореме - что расстояние до трех точек в общей позиции фиксирует точку на плоскости?

Если так, то мне в моем док-ве нравится, что это не нужно :) и от этого оно кажется проще твоего. Мне сразу понятно, глядя на вторую картинку в моей записи, почему точки в разных местах "недолетают" или "перелетают" относительно их места назначения, и как предварительное отражение все это "фиксит".

Еще одно педагогическое соображение против использования треугольника ABO: с самого начала понятно, что и отражения, и повороты не меняют расстояния до O, поэтому, как бы это сказать, вся драма разыгрывается на окружности произвольного радиуса вокруг O. Необходимо и достаточно показать, что на такой окружности все точки правильно переходят, куда надо. Использовать для этого треугольник в общей позиции и аргумент о расстоянии до его вершин точек на всей плоскости сразу кажется несколько overkill.
(Ответить) (Parent) (Thread)
[User Picture]From: lightjedi
2014-11-04 10:59 am
Тогда уж действительно проще сразу нарисовать окружность и два диаметра, из которых один будет горизонтальным, а второй под углом Х к нему. Тогда точка на окружности на угле А сначала станет точкой с углом 360-А, а потом 360-(360-А-X-X) = А+2Х, то есть повернется на 2Х. Последнее равенство можно дополнительно иллюстрировать поворотом всей конструкции на Х, чтобы второй диаметр тоже стал горизонтален.
(Ответить) (Parent) (Thread)
[User Picture]From: utnapishti
2014-11-04 12:44 pm
ОК, прежде всего, я согласен, что достаточно проверить всё на одной окружности.
Тогда я модифицирую "моё" доказательство: выбираю точки А и В на одном расстоянии от О: |ОА|=|ОВ|.
После этого моё доказательство практически не отличается от твоего. Чтобы окончательно поставить точку, можно посчитать углы.
Но вот какая странность возникает: не очень понятно, за счёт чего устранилась твоя претензия с "апелляцией к отдельной теореме". Мы как будто рассмотрели более ограниченный случай - а доказательство кажется более обоснованным.
Наверное, дело в том, что твоё доказательство в некотором смысле не чисто геометрическое: оно пользуется сложением углов, т.е. уже какой-никакой алгеброй. По той же причине я не назвал бы его интуитивным: в нём присутствуэт очень простой, но всё-таки рассчёт.
Моё же доказательство - как мне кажется - по-своему геометричнее и интуитивнее: "очевидно", что если у нас есть отрезки АВ и А'В' однинаковой длины, и мы хотим перетащить АВ на А'В', то есть единственный способ сделать это, не деформируя (и не переворачивая) плоскость. Но да, для полного обоснования тут нужно потрудиться больше.
(Ответить) (Parent) (Thread)
[User Picture]From: kogan
2014-11-06 08:22 am
Есть программистская задача, решение которой основано на этом факте: переставить две неравные части одномерного массива, не используя дополнительных массивов.
(Ответить) (Thread)