function rule3(v, vmin, vmax, tmin, tmax) {
var nv = Math.max(Math.min(v, vmax), vmin);
var dv = vmax - vmin;
var pc = (nv - vmin) / dv;
var dt = tmax - tmin;
var tv = tmin + (pc * dt);
return tv;
}
可以看出返回值是一个tmin增量,最大是tmax,最小是tmin
其中增量是tmax - tmin与一个权重的积,即dt与pc,
权重的大小取决于v,在0~100%间变动
可是这又能用来干什么??
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
想到一个应用
用来处理边界问题
比如一个盒子里面有一个球会随着鼠标移动,但是鼠标可以移出盒子,求不行,当鼠标移出盒子的时候它的坐标就相当于你所说的v
这时候球会移动到边界但是不会移出盒子
可以用在需要有界的线性插值的地方,比如画一个线段。
通过多阶的组合还可以表示 (多项式的) 非线性插值,比如画一条贝塞尔曲线。
楼上说挺多的了,我补充个实例。