私は1次元の鳥を持っています。その間隔は浮動小数点です。私は浮動小数点座標の点も持っています。最も近いグリッドポイントまでの距離を見つける必要があります。
例えば:最近点がその背後にあるのでポイントにグリッドの最も近い点を得る
0.12
|
*
|---------|---------|---------|---------|---------|
0 0.1 0.2 0.3 0.4 0.5
結果は-0.02
あろう。それは
-0.66
|
*
|---------|---------|---------|---------|---------|
-1 -0.8 -0.6 -0.4 -0.2 0
た場合
しかし結果は0.06
になります。あなたが浮動小数点で見ることができるように、負である可能性があります。
は、私が試した次
float spacing = ...;
float point = ...;
while(point >= spacing) point -= spacing;
while(point < 0) point += spacing;
if(std::abs(point - spacing) < point) point -= spacing;
それは動作しますが、私はあなただけの数ラウンドこの使用すべきである
間隔は直線ですか? – GWW
彼の例では線形です。 – GWW
@MooingDuck:その線形、定数(そのパラメータ) – Dani