묻고 답하고
졸업작품하면서 아두이노 레오나르도 보드로
Mouse.move()
함수를 사용하여 마우스 커서를 이동시켰는데 문제는 만약 제가 350정도의 x축으로 이동하려고
Mouse.move(350, 0);
으로 이동하면 실제로는 80픽셀정도밖에 이동이 안되는겁니다..그래서 for함수를 이용해서 Mouse.move(1, 0)씩 350번을 이동시켰더니 교수님이 너무 이동량이 많다고 한번에 이동가능하게끔 어떤 식이 나오게 도출할수는 없냐고 하시는데 여러값들을 시험해봤는데 1차방정식 그래프처럼은 나오질 않아서 고민입니다..
다른분들은 어떻게 한번에 원하는 좌표까지 마우스 커서를 이동시키는지 알고싶습니다.
작성된지 6개월이 지난 글에는 새 코멘트를 달 수 없습니다.
Mouse.move(350,0,0) 하면 X축으로 +350픽셀 이동되게끔 전달하는 것이 맞습니다. 실제로 이것보다 더 이동되거나 덜 이동되는 것은 운영체제의 마우스 이동 관련 속도, 가속도 및 정밀도 보정이 붙어서입니다.
예를 들어서 가속도의 경우, (10,0,0)을 딜레이 없이 100회 반복하면 가속도 보정이 없을땐 1000픽셀, 가속도 보정이 있을땐 최종적으로 2000픽셀 움직이고 delay(10)을 넣는다면 가속을 조금만 받아서 최종적으로 1500픽셀 움직이는 식이죠. "가속도" 이기 때문에 말씀하신 것 처럼 일차방정식이 아니라 커브 형태의 간격으로 이동하게 됩니다.
윈도우즈의 경우 제어판 - 마우스에서 포인터 스피드를 중앙으로, 인헨스 프레시젼을 비활성화로 하시면 딜레이에 관계 없이 입력하신 값 만큼만 이동하게 됩니다.