Clamping (graphics)

Limiting a position to an area

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Clamping" graphics – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this message)

|

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  [ 0 , 1 ] {\displaystyle [0,1]} .[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.

## 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 funcion documentation". Retrieved 2023-10-15.
5. ^ "OpenGL 4 Reference Pages". www.khronos.org. Retrieved 2018-10-31.

This computer graphics–related article is a stub. You can help Wikipedia by expanding it.

|

* v
* t
* e

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template