2012-12-18 6 views
1

마우스 커서를 따라 가려면 this ray을 만들 수 없습니다.캔버스 회전 반전 X

X 축에서 항상 역수입니다.

내 atan 함수에 문제가 있다고 생각하지만 내 삼각법이 상당히 낮기 때문에이 문제를 해결하는 방법을 모릅니다. FF는 기본적으로 마우스 event.offsetX/Y를 지원하지 않는 것처럼 바이올린 위의 파이어 폭스에서 작동하지 않습니다

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


:

이 내가 라디안을 계산하는 방법이다 이벤트, 나는 당신의 정규화 코드가 최소한의 예제를 만들었을 때 끊어 졌다고 가정하지만 나중에 참조 할 수 있도록 정규화 코드를 남겨 둘 것입니다 :

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

예 그럴 수 있다고 생각했습니다. '=]'내 바이올린이 브라우저 간 방식으로 작동하도록 정규화 코드를 추가했습니다. –