[ad_1]
こんにちは、みんな、
特定の距離を表す3Dテーブルがあります
高さの角度と温度
たとえば、テーブルは次のようになります
0 ~ 45 ~ 90 の角度の場合
高さは 0 から 200 から 600 まで
-5 から 10 から 25 までの温度
角度 |__0__|__45__|__90__
高さ|温度’| |
0 | -5 |_25__|__19__|__17__
0 | 10 |_20__|__16__|__12__
0 | 25 |_27__|__32__|__30__
200 | -5 |_27__|__32__|__30__
200 | 10 |_25__|__29__|__28__
200 | 25 |_24__|__22__|__20__
600 | -5 |_40__|__47__|__50__
600 | 10 |_38__|__42__|__46__
600 | 25 |_37__|__39__|__40__
角度 = 45、高さ = 200、温度 = -5 の場合、値は 32 です。
角度の高さと温度を受け取る C++ 関数が必要です。
距離の補間値を返す
float GetInerpolatedVal(int angle,int Height, int temperature );
呼び出しは次のようになります
float fVal = GetInerpolatedVal(24,343,-2)
ある種の3D補間を使用する必要があると思いますが、見つけられないようです
このようなテーブルで動作する実装。
次のような 3D 補間を見つけました。
double Linear3dInterp(double v1、double v2、double v3、double v4、
ダブル v5、ダブル v6、ダブル v7、ダブル v8、x、y、z );
しかし、私はv1-v8が何であるかを理解していません(私の例では、xyとzは特定の高さ角度と温度だと思います)
ありがとう!
私が試したこと:
グーグル3D補間
2d 補間のベースとして 1d 補間を使用する
3D 補間のベースとして 2D 補間を使用する
しかし、どの値が2次元補間の境界であるかについて混乱しました
解決策 1
角度の値は、他の値に対して選択する列を示します。 高さと温度の表で正しい行を選択します。 次に、角度に対応する列からセルを選択します。
[ad_2]
コメント