Javascript 如何将像素距离转换为步长
我想根据容器宽度和线相对于容器的距离来计算步长 我能够计算出步长,但最小步长是0。然而,在我的场景中,最小步长可以大于0,到目前为止,我还没有弄清楚如何在计算中烘焙它 检查下面的完整示例。Javascript 如何将像素距离转换为步长,javascript,Javascript,我想根据容器宽度和线相对于容器的距离来计算步长 我能够计算出步长,但最小步长是0。然而,在我的场景中,最小步长可以大于0,到目前为止,我还没有弄清楚如何在计算中烘焙它 检查下面的完整示例。 //小示例: //在这段代码中,直线距离0对应于步骤0,但我希望它是 //对应于步骤100,因为这应该是最小步骤。 var lineDistance=0;//二甲苯 var maxDistance=704;//二甲苯 var-minSteps=100//步 var maxSteps=500//步 var st
//小示例:
//在这段代码中,直线距离0对应于步骤0,但我希望它是
//对应于步骤100,因为这应该是最小步骤。
var lineDistance=0;//二甲苯
var maxDistance=704;//二甲苯
var-minSteps=100//步
var maxSteps=500//步
var step=数学楼层((线距离/最大距离)*maxSteps);
阶跃计算应返回的静态值的一些示例:
最终目标是能够用动态值计算步长
- 如果线距离为
,则0
返回步骤
100
- 如果线距离为
,则10
返回步骤
105
- 如果线距离为
,则352
返回步骤
300
- 352是最大距离的一半
- 300最小和最大步长之间的中间点
- 如果线距离为
,则704
返回步骤
500
const distanceLength=maxLength-minLength;//在您的情况下,可能是maxLength-0
常量步长=最大步长-分钟步长;
然后将值标准化(查找距离差):
const distance diff=lineDistance-minDistance;//在您的情况下,可能只是线距离
然后将其转换为绝对单位:
const distanceRate=distanceDiff/distanceLength;
然后转换为以下步骤:
const stepsDiff=距离率*步长长度;
并以步长最小值进行换档:
const steps=minSteps+stepsDiff;
就是这样!所以我从这个Math.floor((lineDistance/maxDistance)*maxSteps)开始代码>到这个→ <代码>数学楼层(分钟步数+(线距离/最大距离)*(最大步数-分钟步数))代码>。我“缩小”了你的代码,使之更适合你,并从计算中删除了MindDistance,因为在我的例子中它总是0。不,不,这非常有用。我只是想确保有一个使用原始代码的工作示例,供偶然发现这个问题的人使用。