使い方
元のベクトルuを、基準ベクトルvに沿う射影pと垂直な残差rに分解します。x・yなら2D、zも必要なら3Dを選びます。両ベクトルは同じ座標系と互換性のある単位で入力してください。順番は重要で、射影されるのがu、方向を指定するのがvです。幾何や運動の方向成分を確認する際に、あらかじめvを単位ベクトルにする必要はありません。
編集可能な初期例を自分の値に置き換え、必要に応じて比較記号・次元・サイズを選び、計算を押します。Enterでも同じフォームを実行できます。この操作を行うまでは結果は確定しません。数値の編集や選択の変更で前の結果が消え、コピーも無効になります。以前の答えを新しい入力の結果と取り違えるのを防ぐためです。クリアは数値欄を空にし、選択したモードは保持します。計算後の「結果をコピー」には入力と数値結果がプレーンテキストで含まれます。クリップボードが使用できないときは、表示された文字列を選択してください。 薄い値はそのまま計算できる例です。数値欄に初めてフォーカスすると例の数値を一度だけ消去し、その後の入力は保持します。 入力プレビュー:結果を確定するには計算を押してください。
計算方法と結果の読み方
式はp = (u · v)/(v · v) v、r = u − pです。同じ計算は、vを正規化した方向dを求め、符号付きスカラーs = u · dを計算してp = sdとしても行えます。実装はこの単位方向の形を使います。スカラーは符号を持つため、常に非負の射影の長さとは異なります。長さは|s|です。厳密な演算ならr · v = 0となり、残差は基準方向に垂直です。
結果には射影ベクトル、スカラー成分、残差、残差とvの内積、直交性の相対誤差を表示します。大きいベクトルでは絶対的な内積だけだと誤解しやすいため、相対誤差も確認できます。図ではuとvは原点から始まり、pは基準の直線上、rはpの先端からuの先端に向かいます。これによりp + r = uを図で追えます。実線・破線・ラベルで区別し、色だけに頼りません。
例
例1:2Dでu = (3, 4)、v = (1, 0)なら、p = (3, 0)、s = 3、r = (0, 4)、r · v = 0です。両軸に同じ縮尺を使うため、水平な基準と垂直な残差の直角が保たれます。
例2:3Dでu = (2, −1, 3)、v = (0, 0, −2)なら、p = (0, 0, 3)、s = −3、r = (2, −1, 0)です。射影の長さは3でも、負のスカラーはpがvと逆向きであることを示します。内積の検算はゼロになります。
制限とエラーの対処
対応するのは実数2成分・3成分です。vは非ゼロ必須ですが、uはゼロでも構いません。小数点はピリオドで、入力は0または絶対値1e−12〜1e12です。通常の結果は小数最大2桁、小さな非ゼロ値は追加の有効桁を残します。内部では丸める前の値を使います。3D図は画面座標(x − 0.6z, y − 0.4z)への平行投影なので、長さや角度が変わり、異なる点が重なる場合もあります。直交性は画面の角度ではなく内積で確かめてください。コピーは数値だけで画像は含みません。
入力は有効数字15桁までです。
よくある質問
vを正の数倍するとpは変わりますか?
変わりません。vの長さだけが変わり、基準の直線と射影は同じです。
vを逆向きにすると?
スカラーの符号は反転しますが、射影と残差は同じです。
射影がゼロになることはありますか?
uとvが垂直ならpはゼロになり、元のu全体が残差になります。
zの欄が消えたのはなぜですか?
2Dではzを非表示にして計算から除きます。3Dに戻すと欄が復帰しますが、結果は再計算してください。