2014-11-02 2 views
1

희망하는 곳입니다.마우스 움직임 시각화를 만드는 가장 유익한 방법은 무엇입니까?

배경 : 나는 오스 게임을 해왔다. 최근에는 마우스를 기반으로 한 시각화를 만들기로 결정했습니다 (실제로 태블릿이지만 OS가 동작을 어떻게 생각하는지 파악할 수 있습니다). Java를 위해 촬영하기로 결정했습니다. really cool guy who did a library for global mouse events이 있었기 때문에이 모든 것을 5 수준의 프로젝트로 만들었습니다.

상황 : 나는 기록을 시작하고 중지하고, 저장된 동작 데이터를 재설정하고, 디버그 정보를 표시하고 종료 할 수있는 간단한 GUI를 가지고 있습니다. 모든 것이 작동하지만 - 지금 내 데이터로 무엇을합니까?

package com.gmail.zkfreddit.mousetracker; 

import de.ksquared.system.mouse.MouseEvent; 

public class MouseMotionData { 
    public final long time; 
    public final int x; 
    public final int y; 

    public MouseMotionData(MouseEvent e) { 
     time = System.nanoTime(); 
     x = e.getX(); 
     y = e.getY(); 
    } 

    @Override 
    public String toString() { 
     return "MouseMotionData{time=" + time + ",x=" + x + ",y=" + y + "}"; 
    } 
} 

그러나, 나는이 데이터를 시각화 할 수있는 방법에 대한 우둔 해요 :

내 주요 데이터 세트는 기본적으로 다음과 같은 클래스의 인스턴스의 ArrayList를합니다. I tried drawing lines이지만 그림은 5 년 된 그림과 비슷합니다.

(중간에 서클에 관심이있는 경우 osu는 "회 전자"라는 게임 플레이 요소가 있습니다.)

히트 맵을 만들려고했는데 내 화면 픽셀 치수의 두 배 배열을 만들어 열을 나타내는 값으로 채우려고했지만 마우스 이벤트가 처리되는 방식 때문에 점이 아니라 선을 생성합니다. 그리고 라인을 채우면 시각화 당 + 50000 포인트가 넘는 것을 고려하면이 라인을 기반으로 열 데이터를 생성하므로 표준 데스크탑 PC가 처리 할 수없는 거대한 작업이 될 것입니다.

제안 사항?

+0

'de.ksquared.system.mouse.MouseEvent;'?? 어떤 GUI 라이브러리를 사용하고 있습니까? –

+0

실제 GUI 라이브러리가 없습니다 (스윙 제외). 저는 Kristian Kralic의 글로벌 마우스 수신기를 사용하고 있습니다 [http://kra.lc/blog/2011/07/java-global-system-hook/]. 원래 질문에 다른 코드를 붙여 넣을 수는 있지만 요점을 놓치는 것 같아요. 이것은 데이터로 할 수있는 것에 관한 것입니다. – ZKF

+0

시각화의 목적은 무엇입니까? 미학? 게임 플레이 분석 및 개선? ...? – wonce

답변

0

여기 내 아이디어가 있습니다. 선형 대수학에서는 약간 무겁지만 결과는 유익하고 시각적으로 유익한 것이라고 상상해 봅니다.

샘플을 n 개의 셀 (각각 20x20px)의 격자로 이산화합니다. (i, j)을 마우스가 셀 에서 셀 j으로 직접 이동 한 횟수로 정의하십시오. 모든 셀을 제거하십시오. j 여기서 a (i) (j) = 0 모두 i (색상은 검정)입니다. 그런 다음 x (j)의 평균을 모두 x (i)으로 설정하십시오. 여기에서 a (i) (j)이 0이 아닙니다. 모든 x의 값을 결정하는 선형 방정식의 (큰) 균질 시스템을 남깁니다. 비 상수 솔루션을 계산하고 값을 각 셀의 색상으로 매핑하십시오. 마지막에 가우스 흐림 효과를 추가 할 수 있습니다.