- Clamping (graphics)
-
In computer graphics, clamping is the process of limiting a position to an area. Unlike wrapping, clamping merely moves the point to the nearest available value.
To put clamping into perspective, pseudocode for clamping is:function clamp(X, Min, Max:Real):Real; if X > Max then X := Max; if X < Min then X := Min; return X;
In JavaScript:
function clamp(value, min, max) { return Math.min(Math.max(value, min), max); };
A faster[1] one in JavaScript using ternary operators:
function clamp(value, min, max) { return value < min ? min : value > max ? max : value; }
C and C++: (int can be changed into any other datatype):
int clamp(int X, int Min, int Max) { if( X > Max ) X = Max; else if( X < Min ) X = Min; return X; }
or
int clamp(int X, int Min, int Max) { return ( X > Max ) ? Max : ( X < Min ) ? Min : X; }
or
int clamp(int X, int Min, int Max) { if ( X > Max ) return Max; if ( X < Min ) return Min; return X; }
or, using templates to cover all data types (C++ only)
template<typename T> T clamp(T Value, T Min, T Max) { return (Value < Min)? Min : (Value > Max)? Max : Value; }
Uses
One of the many uses of clamping in computer graphics is the placing of a detail inside a polygon—for example, a bullethole on a wall. It can also be used with wrapping to create a variety of effects.
Can also mean clamped to a certain value. For example, in OpenGL, the glClearColor takes a GLclampf value which is a gl float value 'clamped' to the range [0,1].
References
- ^ "jsPerf - clamp functions". jsPerf - clamp functions. http://jsperf.com/clamp-functions.
Categories:- Computer graphics algorithms
- Computer graphics stubs
Wikimedia Foundation. 2010.