?

Log in

No account? Create an account
вращение как два отражения - Поклонник деепричастий [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: 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) (Развернуть)
[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: 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: kogan
2014-11-06 08:22 am
Есть программистская задача, решение которой основано на этом факте: переставить две неравные части одномерного массива, не используя дополнительных массивов.
(Ответить) (Thread)