問題タブ [clamp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
14 に答える
56606 参照

c - 実数 (固定/浮動小数点) 値をクランプする最速の方法は?

if ステートメントや三項演算子を使用するよりも効率的に実数をクランプする方法はありますか? double と 32 ビットのフィックスポイント実装 (16.16) の両方でこれを行いたいと考えています。両方のケースを処理できるコードを求めているわけではありません。それらは別の関数で処理されます。

明らかに、私は次のようなことができます:

また

フィックスポイント バージョンは、比較のために関数/マクロを使用します。

これはコードのパフォーマンスが重要な部分で行われるため、可能な限り効率的な方法を探しています (これにはビット操作が含まれると思われます)。

編集: 標準/移植可能な C でなければならず、プラットフォーム固有の機能はここでは重要ではありません。また、MY_MINMY_MAXは、クランプしたい値と同じタイプです (上記の例では double)。

0 投票する
10 に答える
81748 参照

c# - Where can I find the "clamp" function in .NET?

I would like to clamp a value x to a range [a, b]:

This is quite basic. But I do not see a function "clamp" in the class library - at least not in System.Math.

(For the unaware to "clamp" a value is to make sure that it lies between some maximum and minimum values. If it’s greater than the max value, then it’s replaced by the max, etc.)

0 投票する
4 に答える
12727 参照

c++ - ベクトルを最小値と最大値にクランプしますか?

私はこれに出くわしました:t = Clamp(t / d、0、1)しかし、ベクトルでこの操作を実行する方法がわかりません。独自のベクトル実装を作成している場合、ベクトルをクランプする手順は何ですか?

ありがとう

ベクトルを最小値と最大値にクランプするクランプ

元:

0 投票する
9 に答える
139242 参照

python - 整数をある範囲にクランプする方法は?

次のコードがあります。

基本的に、新しいインデックスを計算し、それを使用してリストから要素を見つけます。インデックスがリストの範囲内にあることを確認するために、これら 2 つのifステートメントを 4 行に分けて記述する必要がありました。それは非常に冗長で、少し醜いです...あえて言うと、それはかなり非 pythonicです。

他のよりシンプルでコンパクトなソリューションはありますか? (そしてよりpythonic

はい、if else1行で使用できることはわかっていますが、判読できません:

max()また、連鎖してmin()一緒にできることも知っています。よりコンパクトですが、入力を間違えると、ちょっとわかりにくく、バグを見つけるのが難しくなるように感じます。言い換えれば、私はそれが非常に簡単だとは思いません。

0 投票する
4 に答える
6415 参照

c++ - クランプマクロに問題があります

クランプマクロに問題があります。値が10を超え、高さが17を超えると、機能しなくなります。何か案が?

0 投票する
1 に答える
10432 参照

c++ - OpenCvマットで値をクランプする最も効率的な方法

要素を含む、Matピクセルごとの再マッピングに使用するOpenCvがあります。remapCV_32FC2

これらの要素の一部は、リマップで許可されている範囲外にある可能性があります。だから私はそれらをとの間でクランプする必要がPoint2f(0, 0)ありPoint2f(w, h)ます。OpenCv 2.xでこれを達成するための最短または最も効率的な方法は何ですか?

これが1つの解決策です:

しかし、それが最短かどうか、または分割/マージが効率的かどうかはわかりません。

0 投票する
2 に答える
1216 参照

c# - Mathhelper.Clamp は正確ではありませんか?

作業中のゲームで Mathhelper.Clamp を使用しているときに問題が発生しました。問題を引き起こしているコードのスニペットを次に示します。

基本的に、私が達成したいと思っているのは、(x,0 から開始して) プレーヤーのスプライトを画面の中央に到達するまで下に移動させ、代わりに背景を背景の下部から半分を引いた値に到達するまで移動させることです。画面の高さを超えると、プレーヤー スプライトは画面の下部に到達するまで再び移動します。(これを実現するためのコードがあります) - 私には、これは 2D サイドスクローラーの非常に典型的なカメラ機能のように思えます。

ただし、私が抱えている問題は、位置が正確に固定されていないことです。つまり、位置が非常に具体的に配置されていることに依存するコードも壊れています。より具体的には、クランプポイントを超えて1フレーム分の余分な動きが許可されているように見えます.

これが機能しない理由があるかどうか、または機能させるために何ができるかを誰かに教えてもらえますか? 前もって感謝します!

0 投票する
3 に答える
43130 参照

python - Pythonで浮動小数点数をクランプしますか?

Python 2.6にこのための組み込み関数はありますか?

何かのようなもの:

0 投票する
10 に答える
153247 参照

javascript - セグメントに数値を制限する最もエレガントな方法は何ですか?

としましょうxabは数字です。xセグメントの境界に制限する必要があります[a, b]

言い換えれば、私はクランプ関数が必要です:

誰かがこれのより読みやすいバージョンを思い付くことができますか?

0 投票する
5 に答える
9662 参照

ruby - 数を制限/クランプする方法はありますか?

x範囲内に収まる次のコードを記述しました(a..b)。擬似コードの場合:

Rubyでは次のようになります。

非常に基本的で便利な機能なので、ルビーでそれを行うためのネイティブな方法があるのだろうかと思いました。

Ruby 2.3.3の時点では、このような方法は明らかにありませんが、これを行うための最短で読みやすい方法は何でしょうか。

私が見つけた:

これまでのところ、もっと読みやすいかどうかはわかりません。