最近線形代数を勉強している。ベクトルの対称移動(直線に対する反射)のところで手が止まった。任意の角度の直線に関する反射は
| cos2θ sin2θ |
| sin2θ -cos2θ |
のような行列で表せるらしいんだけど、なぜこの形になるのか、式を眺めているだけではピンとこなかった。
そこで Claude Code に「斜めの直線に対する点の対称移動を、仕組みごと分かるアニメーションを描いて」とお願いしてみた。できあがったのは、鏡を ① いったん回転させて x 軸に寝かせ、② x 軸に関して素直に折り返し(y 座標の符号を反転するだけ)、③ 最後に鏡を元の角度まで回転で戻す、という3ステップに分解して見せてくれるアニメーションだった。反射行列が「回転 → 折り返し → 回転」という3つの行列の積に分解できることを、そのまま絵で説明してくれている。
斜めの直線に関する対称移動 = 回転 → 折り返し → 回転
鏡を一度「真横」に寝かせてから、パタンとひっくり返す
黄色の線が「斜めの鏡」(直線 l)、ピンクの点が P です。▶ を押すか、点 P をドラッグしてから再生してみてください。
💡 ピンクの点 P はドラッグで動かせます/θ スライダーで鏡の傾きを変えられます
実際に手を動かしてみると、「斜めの鏡に対する反射」という難しそうな操作が、「扱いやすい軸にいったん回転させてから、簡単な操作をして、また回転で戻す」という発想に分解されているだけだと分かる。x 軸に関する折り返しなら y 座標の符号を反転するだけなので、直感的に納得できる。難しく見えていたのはその前後の回転で、それも見慣れた回転行列でしかない。この分解に気づいてからは、行列の積を展開しなくても反射行列の形が自然に腑に落ちるようになった。
数式だけを追っていたときには見えなかった「なぜその形になるのか」が、手を動かして観察できるアニメーションのおかげで一瞬で繋がった。抽象的な概念ほど、Claude Code に手を動かせる模型を作ってもらうと理解しやすくなった。