Jump to content

Clamp (function)

From Wikipedia, the free encyclopedia
(Redirected from Clamping (graphics))

In computer science, clamping, or clipping is the process of limiting a value to a range between a minimum and a maximum value. Unlike wrapping, clamping merely moves the point to the nearest available value.

Y = clamp(X, 1, 3)
X Y
0 1
1 1
2 2
3 3
4 3

In Python, clamping can be defined as follows:

def clamp(x, minimum, maximum):
    if x < minimum:
        return minimum
    if x > maximum:
        return maximum
    return x

This is equivalent to max(minimum, min(x, maximum)) for languages that support the functions min and max.

Uses

[edit]

Several programming languages and libraries provide functions for fast and vectorized clamping. In Python, the pandas library offers the Series.clip[1] and DataFrame.clip[2] methods. The NumPy library offers the clip[3] function. In the Wolfram Language, it is implemented as Clip[x, {minimum, maximum}].[4]

In OpenGL, the glClearColor function takes four GLfloat values which are then 'clamped' to the range .[5]

One of the many uses of clamping in computer graphics is the placing of a detail inside a polygon—for example, a bullet hole on a wall. It can also be used with wrapping to create a variety of effects.

In CSS, clamp()[6] can help to implement responsive typography or responsive designs generally.[7]

Although spreadsheets like Excel, Open Office Calc, or Google Sheets don't provide a clamping function directly, the same effect can be achieved by using functions like MAX & MIN together, by MEDIAN,[8][9] or with cell function macros.[10] When attempting to do a clamp where the input is an array, other methods must be used.[11]

References

[edit]
  1. ^ "Pandas Series.clip method documentation". Retrieved 2023-10-15.
  2. ^ "Pandas DataFrame.clip method documentation". Retrieved 2023-10-15.
  3. ^ "NumPy clip function documentation". Retrieved 2023-10-15.
  4. ^ "Wolfram Language Clip function documentation". Retrieved 2023-10-15.
  5. ^ "OpenGL 4 Reference Pages". www.khronos.org. Retrieved 2018-10-31.
  6. ^ "clamp()". MDN Web Docs. Mozilla.
  7. ^ Bece, Adrian. "Modern Fluid Typography Using CSS Clamp". Smashing Magazine. Smashing Media AG. Retrieved 29 January 2025.
  8. ^ Citi, Jasper. "How do I constrain a value to a range in excel?". Stack Overflow. Retrieved 29 January 2025.
  9. ^ "Clamp function in Excel". Excel Forum. Retrieved 29 January 2025.
  10. ^ "[Solved] Math Clamp Function?". Apache OpenOffice Community Forum. Retrieved 29 January 2025.
  11. ^ "Array-Safe Clamp Value in Google Sheets". Stack Exhange > Web Applications. Stack Overflow. Retrieved 29 January 2025.