ユーザーから次の入力(2〜5の間)を作成するC ++プログラムを作成しようとしています。高さ、幅、x位置、y位置。これらの長方形はすべて、x軸とy軸に平行に存在します。つまり、すべてのエッジの勾配は0または無限大になります。
私はこの質問で述べられていることを実装しようとしましたが、あまり運がありません。
私の現在の実装は次のことを行います:
// Gets all the vertices for Rectangle 1 and stores them in an array -> arrRect1
// point 1 x: arrRect1[0], point 1 y: arrRect1[1] and so on...
// Gets all the vertices for Rectangle 2 and stores them in an array -> arrRect2
// rotated edge of point a, rect 1
int rot_x, rot_y;
rot_x = -arrRect1[3];
rot_y = arrRect1[2];
// point on rotated edge
int pnt_x, pnt_y;
pnt_x = arrRect1[2];
pnt_y = arrRect1[3];
// test point, a from rect 2
int tst_x, tst_y;
tst_x = arrRect2[0];
tst_y = arrRect2[1];
int value;
value = (rot_x * (tst_x - pnt_x)) + (rot_y * (tst_y - pnt_y));
cout << "Value: " << value;
ただし、(a)リンクしたアルゴリズムを正しく実装したかどうか、またはこれを正確に解釈する方法を正確に実行したかどうかは、よくわかりません。
助言がありますか?