为了账号安全,请及时绑定邮箱和手机立即绑定

如何将像素距离转换为步长

如何将像素距离转换为步长

catspeake 2022-01-13 10:56:32
我想根据容器宽度和线相对于容器的距离来计算步数。我能够计算步数,但只有最小步长为 0。但是,在我的场景中,最小步长可以大于 0,到目前为止我还无法弄清楚如何在计算中烘焙它.检查此codepen中的完整示例。// Small example:// In this code, line distance 0 corresponds to step 0, but I want it to // correspond to step 100, since that is supposed to be the minimum step. var lineDistance = 0; // pxvar maxDistance = 704; // pxvar minSteps = 100; //stepvar maxSteps = 500; //stepvar step = Math.floor( (lineDistance/maxDistance) * maxSteps );步骤计算应返回的静态值的一些示例:最终目标是能够用动态值计算步长......如果线距离为0,则step返回100如果线距离为10,则step返回105如果线距离为352,则step返回300352是最大距离的一半300 最小步数和最大步数之间的中间点如果线距离为704,则step返回500
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

如果我理解正确,您只需要插入到步骤的距离,那么您需要先找到两个间隔的长度:


const distanceLength = maxLength - minLength; // probably maxLength - 0 in your case

const stepLength = maxSteps - minSteps;

然后标准化您的值(查找距离差异):


const distanceDiff = lineDistance - minDistance; // probably just lineDistance in your case

然后将其转换为绝对单位:


const distanceRate = distanceDiff / distanceLength;

然后转换成步骤:


const stepsDiff = distanceRate * stepsLength;

并以步长最小值移动:


const steps = minSteps + stepsDiff;


查看完整回答
反对 回复 2022-01-13
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信