現在、ポイントグリッドを生成するアルゴリズムがあります。lx
これは、x( )の長さとy( )の長さの形式でユーザーからの入力を受け取り、ポイントの間隔を空けるためにly
どの増分(デルタ)(dx
および)を使用します。とで定義された境界正方形のエッジで常に開始および終了dy
するポイントが必要です。私はいくつかの方法を試しました:lx
ly
境界正方形の開始エッジは次のように定義されます。
double startx = lx / -2.0, starty = ly / -2.0;
私の最初の方法は、ポイントとラウンドの数を決定します。
int numintervalx = round(lx / dx), numintervaly = round(ly / dy);
2番目の方法では、ポイントの数を決定し、ポイントの数よりも大きい最も近い整数を使用します。
int numintervalx = ceil(lx / dx), numintervaly = ceil(ly / dy);
私の3番目の方法は、ポイントの数を決定し、ポイントの数よりも少ない最も近い整数を使用します。
int numintervalx = floor(lx / dx), numintervaly = floor(ly / dy);
次に、デルタがバウンディングボックスに合うように再計算されます。
dx = lx / double(numintervalx);
dy = ly / double(numintervaly);
for
次に、これらはポイント自体を生成するループに送られます。
for (int i = 0; i <= numintervaly; i++)
for (int j = 0; j <= numintervalx; j++)
{
double point[3] = {startx + dx * j, starty + dy * i, 0};
}
実際のグリッドをユーザー指定のグリッドに近づけ、常にエッジで開始および終了する、別のより正確な方法はありますか?