hbutils.algorithm.linear¶
linear_map¶
-
hbutils.algorithm.linear.
linear_map
(points: Union[Sequence[float], Sequence[Tuple[float, float]]]) → Callable[[float], float][source]¶ - Overview:
Multiple-staged linear gradient calculation based on float number.
- Parameters:
points – Points for this linear mapping. If the sequence consists of float numbers, it will be seen as the simple linear mapping. If the elements are binary tuples (contains 2 float numbers), it means the x-range is assigned.
- Returns:
A callable function for linear mapping.
- Examples::
Simple Linear Mapping
>>> from hbutils.algorithm import linear_map >>> >>> f = linear_map((0, 1, 0.5)) >>> f(0) 0.0 >>> f(0.25) 0.5 >>> f(1 / 3) 0.6666666666666666 >>> f(0.5) 1.0 >>> f(2 / 3) 0.8333333333333334 >>> f(0.75) 0.75 >>> f(1) 0.5
Complex Linear Mapping (x values are customized)
>>> f = linear_map(((-0.2, 0), (0.7, 1), (1.1, 0.5))) >>> f(-0.2) 0.0 >>> f(0) 0.22222222222222227 >>> f(0.25) 0.5000000000000001 >>> f(1 / 3) 0.5925925925925927 >>> f(0.5) 0.7777777777777778 >>> f(2 / 3) 0.9629629629629631 >>> f(0.7) 1.0 >>> f(0.75) 0.9375 >>> f(0.8) 0.875 >>> f(1) 0.625 >>> f(1.1) 0.5