1

1 / b cのパターンに従う関数は、補間関数と非常にうまく組み合わせることができる素晴らしい曲線を生成することがわかりました。

この関数を使用する方法は、「c​​」を変化する値、つまり「シャープネス」のbを変化させながら、0と1の間の補間値として扱うことです。私はこれを使用して0と1の間の補間値を計算するので、一般的に私が使用する関数は次のようになります。

float interpolationvalue = 1 - 1/pow(100,c);
linearinterpolate( val1, val2, interpolationvalue);

この時点まで、補間値= 1の場合、値は0に非常に近いが、0ではないため、ハッキングされたアプローチを使用して「機能」させてきました。

それで、私は疑問に思いました、c=0で結果=1およびc=1結果=0である1/bcによって生成されたものと同様の曲線を再現できる形式または関数があります

または、C = 0、結果= 0、C=1の結果=1です。

助けてくれてありがとう!

4

4 に答える 4

2

補間の場合、最も柔軟性のあるアプローチはスプラインを使用することです。この場合、2次スプラインで十分と思われます。ウィキペディアのページは数学的に重いですが、グーグルで適応した説明を見つけることができます。

于 2010-01-19T11:34:20.643 に答える
1

フォームの同様の曲線を使用して、との値を選択し、制約に一致させることができA - 1 / b^(c + a)ます。だから、のために:Aac = 0, result = 1

1 = A - 1/b^a   =>   A = 1 + 1/b^a

とのためにc = 1, result = 0

0 = A - 1/b^(1+a)  =>  A = 1/b^(1+a)

これらを組み合わせると、次のa点で見つけることができbます。

1 + 1/b^a = 1/b^(1+a)
b^(1+a) + b = 1
b * (b^a - 1) = 1
b^a = 1/b - 1

それで:

a = log_b(1/b - 1) = log(1/b - 1) / log(b)
A = 1 + 1/b^a = 1 / (1-b)
于 2010-01-19T12:03:19.640 に答える
1

1 - c ^ bb?の値が小さい もう1つのオプションは、3次多項式を使用し、0と1での勾配を指定することです。

于 2010-01-19T11:30:57.420 に答える
-1

実数では、数学者が使用するものであり、指定した形式の関数は0を返すことはなく、除算ではそれを行うことができません。(1 / x)==0には実際の解はありません。コンピュータが使用する実際の算術の関係が悪い浮動小数点演算では、1 /(MAX_FP_VALUE ^ 1)と書くことができます。これにより、これまでに得られる限り0に近くなります(実際には、NaNまたはIEEE 754で許可されている他の奇妙なリターンの1つ)。

また、お気づきのとおり、b ^ 0は0乗の定義では常に1であるため、1 /(b ^ 0)は常に1を返します。

したがって、c = 0の関数は、結果0を生成しません。

c = 1の場合、結果= 1、b=1に設定

しかし、これは部分的な答えに過ぎないと思います。あなたが何をしようとしているのか、私にはよくわかりません。

よろしく

マーク

于 2010-01-19T11:32:10.367 に答える