|
@@ -618,9 +618,23 @@ var math = {
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
- linearClamp(value, x1,x2, y1, y2){//x为bound.min, bound.max
|
|
|
|
|
- value = THREE.Math.clamp(value, x1,x2)
|
|
|
|
|
- return y1 + ( y2 - y1) * (value - x1) / (x2 - x1)
|
|
|
|
|
|
|
+ linearClamp(value, xArr , yArr){ //xArr需要按顺序从小到大,yArr对应xArr中的值
|
|
|
|
|
+
|
|
|
|
|
+ let len = xArr.length
|
|
|
|
|
+ if(value <= xArr[0]) return yArr[0]
|
|
|
|
|
+ if(value >= xArr[len - 1]) return yArr[len - 1]
|
|
|
|
|
+ let i = 0
|
|
|
|
|
+
|
|
|
|
|
+ while(++i < len ){
|
|
|
|
|
+ if(value < xArr[i]){
|
|
|
|
|
+ let x1 = xArr[i-1], x2 = xArr[i], y1 = yArr[i-1], y2 = yArr[i]
|
|
|
|
|
+ value = y1 + ( y2 - y1) * (value - x1) / (x2 - x1)
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return value
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|