私は3x3のドットマトリックスを構成する9つのベクトルの配列を持っています。 今、私は、最も左上のもの(O
とマークされている)とほとんどの "右上"(D
とマークされた)要素を探したいと思います。 全体が長方形ではなく、配列はソートされません。だから、それは次のようになります。2Dベクトル配列の右上の要素を見つける
array[0] x= 771 y=324
array[1] x= 968 y=323
array[2] x= 868 y= 397
array[3] x= 1065 y= 368
array[4] x= 1164 y= 326
array[5] x= 768 y= 470
array[6] x= 966 y= 471
array[7] x= 1000 y= 452
array[8] x= 1165 y= 472
O----x----D
| | |
| | |
x----x----x
| | |
| | |
x----x----x
を私は本当にここから開始する手掛かりを持っていけません。私はxとyを同時に比較しますか?
FindD(int& x, int& y)
{
for (int i = 0; i < array.size(); i++)
{
for (int j = 0; j < array.size(); j++)
{
if(i != j)
{
//compare the array elements
}
}
}
}
FindO(int& x, int& y)
EDIT:点が平面上に任意に配置されていないことを指摘します。それらは常に3x3パターンで表示されますが、ポイント間の距離はピクセルによって異なります。また、パターン全体が少し回転しているかもしれません。実際に私は最も右上と左の要素を探したいのですが。回転角度を取得する。
min x、max y、max xを見つけようとします。答えは(min x、max y)と(max x、max y)です。 – learner
@tzippyこの2点{1,1}と{2,2}の間の最も左上の点は何ですか? –
"ほとんどの右上"の定義は何ですか? –