Friday, September 15, 2017

0 - 1 Remapping Functions: Step Ramp

/* remapping functions */

for(i=[-0:1/160:1])translate([i,0])square([1/160,   ( (  stepramp(i,bi1=1/5,bi2=4/5,start=1/3, end=2/3) )) ]);

function stepramp(v,bi1=1/5,bi2=4/5,start=1/3, end=2/3) = 
let(b1=min(bi1,bi2),b2=max(bi1,bi2))
v<=b1?ramp(v,0,b1,0,start):v<=b2?lerp(start,end,(v-b1)/(b2-b1))    :ramp(v,b2,1,end,1);

function ramp(v,bi1=1/3,bi2=2/3,start=1/3, end=2/3) = 
let(b1=min(bi1,bi2),b2=max(bi1,bi2))
v<=b1?start:v<=b2?lerp(start,end,(v-b1)/(b2-b1))    :end;


function lerp(start, end, bias) = (end * bias + start * (1 - bias));

 

No comments:

Post a Comment