Skip to content

Instantly share code, notes, and snippets.

@Dioarya
Last active December 28, 2021 06:48
Show Gist options
  • Save Dioarya/7d84323f0a0b456296c35a1d5569680a to your computer and use it in GitHub Desktop.
Save Dioarya/7d84323f0a0b456296c35a1d5569680a to your computer and use it in GitHub Desktop.
ranged modulo
def rmod(v: float, minimum: float, maximum: float) -> float:
"""modulo with minimum and maximum range
Args:
v (float): value
minimum (float): minimum
maximum (float): maximum
Returns:
float: result
"""
if minimum == 0:
return v % maximum
t = ((v - minimum) / (maximum - minimum)) % 1 # Inverse lerp
return (1 - t) * minimum + t * maximum # Lerp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment