2012-12-18 56 views
1

我不能让this ray跟随我的鼠标光标。画布旋转逆X

它在X轴上总是反转。

我认为问题在于我的atan函数,但由于我的三角函数相当低,我不知道如何解决这个问题。

这是我如何计算弧度:

var dx = target.x - center.x; 
var dy = target.y - center.y; 

var rad = Math.atan2(dx, dy); 
+0

'-Math.atan2(DX,DY)'是 – 6502

+0

有相同的结果作为我的溶液([小提琴]的溶液(http://jsfiddle.net/8dfvM/7/) - 取注意控制台不要炸毁),但的确,减号比改变2个操作数的位置更容易。尽管如此,改变操作数的位置应该提供1字节的压缩增益。 '=]' –

+0

'Math.atan2(dy,dx)'是正确的用法。 – Shmiddty

回答

1
var dx = center.x - target.x; 

Fiddle


小提琴上面并没有工作在Firefox为FF本身并不支持event.offsetX/Y鼠标事件,我假设你的标准化代码在制作简约的例子时被切断了,但我将这里的标准化代码留在这里供将来参考:

function normOffset(event) { 
    if (typeof event.offsetX === 'undefined' || typeof event.offsetY === 'undefined') { 
     var targetOffset = $(event.target).offset(); 
     event.offsetX = event.pageX - targetOffset.left; 
     event.offsetY = event.pageY - targetOffset.top; 
    } 
} 

然后只是将jQuery事件对象传递给它。

Fiddle

+0

那么,我的实际例子更加不同,我只是被那个atan卡住了,写了一个快速小提琴。尽管如此,谢谢。 – jolt

+0

是的,我认为这是事实。 '=]'刚刚添加了我的标准化代码,所以我的小提琴以跨浏览器的方式工作。 –