V1、V2、V3 の 3 つのベクトルがあります。それらの原点は軸の原点にあります。V1 から V2 まで反時計回りに移動したときに、V3 が V1 と V2 の間にあるかどうかを判断するにはどうすればよいですか?
代替テキスト http://www.freeimagehosting.net/uploads/1448ea8896.jpg
それらの角度を取得し、これらの種類の条件を評価することでは実行できません (疑似コード):
if angle(V3) > angle(V1) && angle(V3) < angle(V2)
printf("V3 is between V1 and V2")
else
printf("out of the interval")
その欠陥を確認するために、angle
関数が [-pi pi] の範囲の角度を与えると仮定します。したがって、角度(V1) = 120 (度単位)、角度(V2) = -130、および角度(V3) = 150 の場合、(上記のコードによると) 答えは「間隔外」ですが、動き回るとV1 から V2 まで反時計回りに、それらの間にあります。
angle(V2) などに 2*pi を追加することをお勧めするかもしれませんが、私はそのようなことを試しましたが、うまくいきません。
私はMATLABでプログラミングしています。
編集1:2Dです。