2015-01-07 3 views
4

저는 MATLAB에서 작업 중이며 화면의 아무 곳에서나 커서 위치를 가져 오려고합니다.화면 어디에서나 마우스 위치를 감지 할 수 있습니까?

나는 마우스가 움직이는 동안 계속해서 커서의 위치를 ​​얻고 싶다. 그러나 마우스가 움직이는 동안 MATLAB은 마우스 위치를 얻을 수 있다는 것을 발견했습니다. 은 GUI에서만 나타납니다.

MATLAB의 GUI에는없는 동일한 작업을 어떻게 수행 할 수 있습니까?

답변

6

MATLAB은 GUI 내에서 마우스 좌표 만 가져올 수 있습니까? GUI와 상관없이 마우스의 위치를 ​​화면 어디에서나 쉽게 찾을 수 있습니다. 다음

사용 :

get(0, 'PointerLocation') 

주위에 마우스를 이동하고이 명령을 매번 호출하여보십시오. 마우스가 움직일 때 출력이 계속 변하는 것을 볼 수 있습니다. 이 기능은 GUI와 독립적으로 작동한다는 것을 알 수 있습니다.

이 함수의 출력은 첫 번째 요소가 x 또는 열 위치이고 두 번째 요소가 마우스의 y 또는 행 위치 인 두 요소 배열을 반환합니다. 참조 점은 화면의 왼쪽 하단 모서리를 기준으로합니다. 따라서 화면의 왼쪽 하단에 마우스를 놓으면 (1,1)이 표시되고 화면 오른쪽 상단에 마우스를두면 화면의 해상도가 나타납니다. 당신이 지속적으로 마우스의 위치를 ​​얻을 원한다면

이제, 당신이 CPU에 과부하가 걸리지 않도록 시간의 작은 금액을 일시 중지하는 동안 while 루프에서이 호출을 배치하는 것이 좋습니다. 따라서 다음과 같이하십시오.

while condition 
    loc = get(0, 'PointerLocation'); 

    %// Do something 
    %... 
    %... 

    pause(0.01); %// Pause for 0.01 ms 
end 
관련 문제