2011-11-16 3 views
3

나는 자바 스크립트에서 텍스트를 그릴 필요가있는 캔버스가 있으며 주어진 점이 텍스트와 겹쳐 지는지 여부를 테스트합니다.점이 캔버스에있는 문자와 겹치는지 테스트합니다.

캔버스 (context.fillText (...))를 사용하여 가능한 경우 테스트 (if (overlap (textobject, {x : 12, y : 10 {})) 또는 SVG에 문자를 그려서 좌표를 가져야하고 거기에서 정렬 할 수 있는지 여부

나는이 종류의 것을 팝업하기 시작했지만 거기에있는 라이브러리가 있다고 확신하지만 오늘 내 구글 기술에 문제가.

+0

캔버스 만 사용해야하는 경우 텍스트를 빈 캔버스에 채우고 (페이지에있을 필요는 없음) 'getImageData()'를 사용하여 주어진 픽셀이 투명하지 않은. – Phrogz

답변

0

업데이트 : 오픈 웹 팬과 OOMG HTML5이므로 플래시를 완전히 무시했습니다. 그것이 내가하려고하는 것에 대한 최선의 수단이라고 밝혀졌습니다. 그리고 actionscript와 JS가 매우 유사하기 때문에 로직은 복사 붙여 넣기 작업이었습니다. 답변에 대한


감사 힙, 그것은 거대한 물어 었죠, 그래서 나는, Illustrator에서 내 문자를 그린 그리드 설정 그리드가 문자를 넘어 곳의 배열을 생성하고 한 곳 없다 - 그런 다음 JS 배열로 바꿨습니다. 완료되면 링크를 게시 할 것입니다.

1
는 픽셀 조작의 일부 유형의 캔버스에 그려 질 텍스트를 필요로하지 않는 한 나는이 주위에 몇 가지 생각할 수있는

...

한 가지 방법은 텍스트를 캔버스 요소 (position : absolute;) 위에 플로팅 한 다음 jQuery로 호버 이벤트를 테스트하는 것입니다. 또 다른 방법은 캔버스 요소의 텍스트 주위에 상자를 만든 다음 마우스가 해당 범위 내에있을 때이를 감지하는 것입니다.

가장 정확한 테스트를 찾고 계시다면 svg가 도움이 될 것입니다.

라이브러리를 시험해보고 이미이 기능을 만들었는지 확인할 수도 있습니다. easel js

관련 문제