diff --git a/geometry.go b/geometry.go
index 0fe8a9d0ec5b159ede02836b593962a00aedffe5..1d538d3c811e48cc33f3a7dbb611548e79d27cba 100644
--- a/geometry.go
+++ b/geometry.go
@@ -5,6 +5,20 @@ import (
 	"math"
 )
 
+// Clamp returns x clamped to the interval [min, max].
+//
+// If x is less than min, min is returned. If x is more than max, max is returned. Otherwise, x is
+// returned.
+func Clamp(x, min, max float64) float64 {
+	if x < min {
+		return min
+	}
+	if x > max {
+		return max
+	}
+	return x
+}
+
 // Vec is a 2D vector type with X and Y coordinates.
 //
 // Create vectors with the V constructor: