Jquery 鼠标作为消失点

Jquery 鼠标作为消失点,jquery,performance,css,geometry,Jquery,Performance,Css,Geometry,在这里,您可以看到我的实现 它基本上可以像预期的那样工作,但也有一些地方角度变化突然而不平滑。玩你的鼠标,找出答案。(当鼠标的X位置约为消失线的X位置时)。我也不明白为什么消失线没有跟随鼠标超过45° lineRad = Math.asin(Math.sin(vertDist / mouseLineDist)); lineRad = (mouseX - lineX) >= 0 ? lineRad : -lineRad + Math.PI; lineRad = (mouseY - lin

在这里,您可以看到我的实现

它基本上可以像预期的那样工作,但也有一些地方角度变化突然而不平滑。玩你的鼠标,找出答案。(当鼠标的X位置约为消失线的X位置时)。我也不明白为什么消失线没有跟随鼠标超过45°

lineRad = Math.asin(Math.sin(vertDist / mouseLineDist));

lineRad = (mouseX - lineX) >= 0 ? lineRad : -lineRad  + Math.PI;
lineRad = (mouseY - lineY) >= 0 ? lineRad : -lineRad;
这可能是跳跃的起源,但我不确定

我刚刚在Firefox下检查了这个。它似乎有重大的性能问题。
所以这个原型在Chrome上工作。如果您对性能和浏览器兼容性有任何建议,我们也将不胜感激。

如果您缺少atan2的功能,它可以在一行代码中完美地解决您的问题:

horDist = (mouseX - lineX);
vertDist = (mouseY - lineY);

lineRad = Math.atan2(vertDist, horDist);

此外,将变换原点设置为阿片,而不是设置传统的translateY,可能会获得更好的性能