0

i 個の要素で満たされた配列があります。2人の間で何かが起こっているかどうかを確認したい. これまでのところ、この配列内の特定の 1 つの要素で何が起こるかを確認することしかできません。

私の配列は次のように記入されています:

int iSegment = pDatagram->header.start - 1;

pdX[0] = (-(pDatagram->distances[0]) * ROD4::dCos_table[0]);
pdY[0] = ( (pDatagram->distances[0]) * ROD4::dSin_table[0]);
iSegment += 1;  //correct start of interval #1

//calculate cartesian values
for(int i = 1 ; i < pDatagram->distanceCount; i++)
{
   pdX[i] = (-(pDatagram->distances[i]) * ROD4::dCos_table[iSegment]);
   pdY[i] = ( (pDatagram->distances[i]) * ROD4::dSin_table[iSegment]);
   iSegment += pDatagram->header.resolution;
}

そして、次の行を使用して、70 番目の要素で何が起こっているかを確認しています。

pdX[70] = (-(pDatagram->distances[70]) * ROD4::dCos_table[70]);
if( pdX[70] > 0 && pdX[70] < 45 ) // these are to test the distances of the 70th element
{
    cout << "My line is broken in the X axis" << endl;
}

40番目から70番目の要素の間で何が起こっているかを確認するにはどうすればよいですか?

4

2 に答える 2

0

C スタイルの配列を使用している場合は、必要な要素を最初から最後まで while ループを使用するだけです。pdXが何であるかはまだよくわかりませんが、0と45を必要とする条件があるため、(直交デカルト形式ではなく)sin / cosに関する座標のように見えますが、角度について話していると思いますおそらくここが間違っています。この回答を編集できるように明確にしてください

size_t x_start = 40;
size_t x_end = 70;

size_t counter = x_start;
bool line_broken_x = false;

while (line_broken_x != false && counter != x_end+1)
{
    if( pdX[counter] < 0 || pdX[counter] > 45 )
        line_broken_x = false;

    counter++;
}

if (line_broken_x == true)
    cout << "My line is broken in the X axis" << endl;
else
    cout << "My line is not broken in the X axis" << endl;
于 2013-06-12T14:32:24.103 に答える