I have a min and max position of an object and I want to represent an arbitrary point between them as a float between 0.0 and 1.0. This feels relatively basic math, but I can’t quite figure out what I need to do with this. Is there a special name for this sort of thing? Also, are there any built-in methods that would be useful for this?
Godot 4 has the function remap which I think you’re looking for
I think that may work! Thanks!
Maybe you’re looking for lerp()?
Given two vectors and a value between 1.0 and 0, it’ll produce a vector at a point between the inputs.
https://docs.godotengine.org/en/stable/classes/class_vector2.html#class-vector2-method-lerp
I think /u/breadsmasher has your answer, but FWIW, mapping from an arbitrary range onto the range of 0.0 to 1.0 is called normalization
Not sure if there’s a name for the opposite operation
Here’s a Wikipedia article where they just call it Rescaling
Here’s a good article relating lerp and remap. https://www.gamedev.net/articles/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/
Related, note that division is much slower than multiplication.
Instead of:
n / d
see if you can refactor it to:
n * (1.0/d)
where that inverse can then be hoisted out of loops.