データの一部を分析するスクリプトを実装しようとしています。3 点 (p1、p2、p3) の位置情報があります。この図のように、ベクトル p1p2 から点 p3 の角度変位を見つけたいと思います。
p3a、p3b、p3c、p3d は、p3 の可能な相対位置を示します。示されているように、ベクトル p1p2 に対する相対位置を表す出力角度の符号が必要です。
私が使用しているコードは次のとおりです(図に適合):
v1 = p2 - p1;
x1 = v1(1);
y1 = v1(2);
v2 = p1 - p3;
x2 = v2(1);
y2 = v2(2);
angle = atan2d(x1*y2-y1*2,x1*x2+y1*y2);
これは、p3 が p3a にある場合に希望どおりに機能し、正しいサイズ (-77 度) の負の角度を与えます。ただし、p3 が p3d にある場合、目的の大きな負の角度ではなく、大きな正の角度 (+150 度) が出力されます。