Rotor Reflect - Interactive demo of rotation via double reflection

Rotor Reflectは、任意の回転が2回の反射の合成で実現できることを示すインタラクティブなデモです。ベクトルを2つの反射ベクトルで順に反射させることで、三角関数を使わずに回転を実現します。2Dと3Dの両方で動作し、円反転(Circle Inversion)による一般化も紹介しています。ドラッグ操作でローター(反射ベクトルのペア)を調整でき、回転の仕組みを直感的に理解できます。幾何代数(Geometric Algebra)の核心概念を視覚的に学ぶのに最適です。

三角関数のsinやcosを使わずに回転を実現できるという点が、このデモの革新性です。
  1. Sharlin

    与えられた角度を張る2つのベクトルを構築するには(記事にあるように、そのうちの1つは任意に選べるので、最も簡単なのは(1, 0)を使うことです)、もちろん三角関数が必要になります。これは、角度から回転行列を構築するのに三角関数が必要で、その後はドット積だけで好きなだけベクトルを回転できるのとまったく同じであり、あるいはe^ai = sin(a) + cos(a)*iを構築するのに三角関数が必要で、その後は複素数の掛け算だけになるのと同じです。

    2D回転を分解するもう1つの楽しい方法は、3つのシアーに分解する方法で、もともとは1986年にPaethによって与えられました: https://silmon.github.io/arbitrary-image-rotation-using-shea...

  2. amluto

    次元のセクションで、私の「漠然とした数学」のスパイダーセンスが反応しました:

    > 平面上のこのジグザグ運動の間、ベクトルは上記の2次元の場合とまったく同じように平面に沿って回転し続けます。

    「平面」とは何でしょうか? 2Dでは平面は1つだけです。3Dでは、すべての回転は2D平面内で回転し、元のベクトルの平面の直交補空間への射影を保存します(これは平面からの距離と、元の点がどちらの側にあるかだけです)。

    4D以上では、申し訳ありませんが、私たちの人間の3D直感はすべて間違っています。同時に2つの平面で回転でき、それは任意の特定の平面での回転と同等ではありません。

    そして実際、この記事は、その構築が4次元以上では機能しないことの証明にかなり近いです。余次元1の超平面(つまりn-1次元の超平面)を横切る反射は、単一の基底ベクトルを反転させます。これを2回行うと、それらのベクトルのスパンが2D平面を定義し、その特定の平面での回転が得られ、それ以外では得られません。そして、これは一般的な回転を記述するには不十分です。

    もちろん、4Dでは、他の種類の反射的な操作もあります。例えば、3Dではxとyの座標を反転させてzはそのままにすることができます。(その特定の操作自体は回転であり、パリティを変更しません!)「反射」のアイデアを適切に拡張する気があれば、高次元のすべての回転を生成できると思います。

  3. kazinator

    剛体の物理的な2D形状のモデルを反射するには、3D空間内の反射軸の周りで回転させなければならないことに注意してください。つまり、反射は、一時的に借用した追加の次元を含む回転にすぎません。

この日のほかの記事

2026-08-22