问题描述:有两个物体A和B,A移动S1的距离到达终点,B移动S2的距离到达终点,两者同时到达各自终点(S1 != S2),并且所花的时间都是T现在我想通过改变物体的left值,让它们同时到达各自的终点,通过计算得出A物体单位时间内移动5.6px,B物体移动1px可以同时到达终点,但是left属性值不能正确表示小数,只能显示整数。所以累加后得到的数值有偏差,导致两个物体不是同时到达终点的请问怎么处理这样的问题,让两者看起来同时到达各自终点呢?
11 回答
偶然的你
TA贡献1841条经验 获得超3个赞
@┢┦偉: 我是通过按下一个按钮来控制两个物体移动的,鼠标按下按钮的时候,两个物体移动,抬起时动作停止,那么是要给onmousedown事件设置两个setTimeout?
人到中年有点甜
TA贡献1895条经验 获得超7个赞
假设A移动的时间为T1,B移动的时间为T2,他们不是常量。且两者都是平行直线运动的。那么T1=S1/5.6;T2=S2/1;这样两者时间就一样了,T1-T2就是A多移动的时间。“时间差*速度”不就吧距离算出来了。
当然如果不是平行直线运动,那么就要进行具体在X、Y方向的分解。
如果不是直线运动 那就没法了。
我是这样认为的
ABOUTYOU
TA贡献1812条经验 获得超5个赞
如果假设S1 = 1512,S2 = 396,速度分别为V1、V2,经过时间T后到达终点,那么应该有
S1 / V1 = S2 / V2,如果再假定物体B的速度V2为1的话,那么可以得出V1的值为3.81818181...
也就是说每当B移动1,A应该移动3.818181才能在T时间内同时到达,不知道3.8181这个浮点数怎么取值比较好,如果取4,那后面每次累加就多了,怎么确保计算精确呢?
添加回答
举报
0/150
提交
取消