2012-12-14 2 views
1

나는 너비가 1000이고 높이가 600 인 캔버스가 있습니다.이 캔버스 내에서 나는 자신의 ID가 각각 300-500 개의 사각형 타일을 가지고 있습니다. 캔버스 내에서 마우스 좌표를 감지 할 수 있지만 조회 테이블로 1000 x 600 2D 배열을 가져야하거나 좌표가 타일 내에있는 지 알 수있는 알고리즘을 실행해야합니다. 이것은 javascript이므로 모든 것이 브라우저 내에 있습니다. 브라우저가 처리하기에 너무 많은 1000 x 600 2D 배열입니까? 구현은 현명한 룩업 테이블 (look-up table)을 사용하는 것이 훨씬 쉽지만 (아마도 더 빠름), 공간에서의 절충이 너무 많습니다.조회 테이블로 2 차원 배열을 사용하는 것과 클릭 계산을 비교하는 것

+0

자바 스크립트 인 경우 Java에 태그가 붙은 이유는 무엇입니까? 자바! = JavaScript. –

+0

클릭 계산은 두 개의 빼기 (원점 가져 오기)와 셀/사각형 가져 오기의 두 부분으로 나뉩니다. 복잡성을 더하기 위해 그렇게 열심히 보지 않습니다. 내가 누락 된 것이 있습니까? – SJuan76

+0

javascript ... – MrBrightside

답변

1

숫자에 따라 다를 수 있습니다. 이 많은 클릭이 있으며, 대상의 위치가 변경되지 않으면

, 당신이 제안하고 같이 매핑을 미리 계산하는 것이 더 효율적일 수 있습니다.

그러나 초기 매핑을 생성하는 비용은 상대적으로 높으며 디스플레이가 변경되면 해당 비용이 다시 발생합니다 (이를 완화 할 수있는 방법이 있다고 생각합니다). 내 추측 추측은 목표를 반복하고 각 클릭에 대해 수학을하는 것이 더 빠르다는 것입니다. 수학이 단지 직사각형 일 때 매우 복잡하거나 집중적이어서는 안되기 때문입니다.

구현하기 가장 쉬운 방법을 사용하십시오. 충분히 실적이 좋지 않은 경우 (또는 단지 원하는대로 제공하려는 경우) 다음을 시도해보십시오.

+0

"클릭 수가 많아서 타겟 위치가 변경되지 않으면 제안하는대로 매핑을 미리 계산하는 것이 더 효율적일 수 있습니다." 이것은 정확하게 그 경우입니다. 나는 먼저 룩업 테이블을 시도 할 것이다! – MrBrightside

관련 문제