私はポイントのセットを扱っています.私の目標は、4つのベクトルを一緒に追加し、開始点と終了点の間の結果を計算することです.
上記の部分を実行するためのコードを既に準備しているので、正常に動作しているように見えますが、それについては確信が持てません。
とにかく、私がこの質問を投稿している本当の理由は、結果の方向と角度に関係しています。
結果の角度と方向を見つけるという概念と、プログラミングの賢明さを理解するのは難しいと思います。
このシナリオを考えてみましょう....画像
最初にベクトルを追加「頭 2 尾」
ベクトルの加算について私が学んだことから、x2 - x1、y2 -y1 を減算することで、これにより位置ずれの差が潜り込み、AE からのすべてのポイントに対して同じ計算が行われます。
結果を取得するには、すべてのポイント x を 2 の累乗に平方根し、すべての y 位置を 2 の累乗に加算します。
このイデオロギーはうまく機能しているようです.....
しかし、ここでの質問は、その合力の角度と方向をどのように取得するかです....?
結果を計算するために使用するコード:
double Pta;
double Ptb;
Point vect;
float R1, R2;
float resultant;
for(vector<Point>::iterator iter_a = Left_Arm_xy.begin()+1; iter_a != Left_Arm_xy.end(); ++iter_a)
{
if(center.y <= 240)
{
vect.x = iter_a->x - (iter_a -1)->x;
vect.y = iter_a->y - (iter_a -1)->y;
vect_add.push_back(Point(vect.x,vect.y));
for(vector<Point>::iterator iter_v = vect_add.begin(); iter_v - vect_add.begin() + 4 < vect_add.size(); iter_v+=4)
{
R1 = iter_v->x + (iter_v +1)->x + (iter_v +2)->x + (iter_v +3)->x;
R2 = iter_v->y + (iter_v +1)->y + (iter_v +2)->y + (iter_v +3)->y;
resultant = sqrt(pow(R1,2) + pow(R2,2));
}
}
このことを考慮..............
では、ポイント A[2,4]、B[4,8]、C[10,12] を考えてみましょう。このベクトルを追加するには、ベクトル/ポイントを追加します。ポイント B x4 - A x2 とポイント B y8 - A y4 を減算します。ポイント C x10 - B x4 およびポイント C y12 - B y8 これにより、ポイント間の変位が得られます....結果を取得するために、すべてのポイント X と Y の x 2+4+10 = 16 y 4+ を追加します8+12 = 24、次は平方根 16 ^2 + 24^2 = 28.84 です。結果が数値ではなく、x と y の値であるこれらの計算に基づいて、どのように方向と角度を取得できますか?