2011-08-25 4 views
3

Google App Engine에서 작은 프로젝트를 진행 중입니다. html5 캔버스 사용하기 나는 사용자가 노드를 그리고 가장자리를 연결할 수있는 캔버스를 보여줄 필요가있다. dijkstras 알고리즘을 사용하여 최단 경로를 찾아야합니다.HTML5 Canvas에서 Javascript로 값 가져 오기

제 문제는 제출 버튼을 클릭 할 때 캔버스에서 값을 가져 오려고합니다. 값은 노드 및 해당 가장자리의 좌표입니다. 목록을 저장할 수있는 json 데이터 구조가됩니다. 주요 문제는 캔버스에서 json에 저장할 자바 스크립트 값을 가져 오는 것입니다.

내 몸의 일부가

<body> 
<div> 
<canvas id="canvas" height="500" width="1000" style="border:1px solid #c3c3c3;"></canvas> 
</div> 

<div> 
<input type="button" value="Submit" onclick="submit()"> 
</div> 

</body> 

제출 기능에 무엇을 쓸 수를 포함 ???

+1

캔버스에서 해당 정보를 가져올 수 없습니다. 캔버스는 단지 비트 맵 일 뿐이며 "노드"와 "가장자리"는 물론 그 위에 무엇을 그리는 지 전혀 모릅니다. * 당신 *이 그리기 때문에, 당신은 그때 당신이 데이터를 저장해야합니다. – RoToRa

+0

직렬화에 대한 객체 모델 및 지원을 제공 할 [fabric.js] (https://github.com/kangax/fabric.js)와 같은 캔버스 추상화 라이브러리를 사용해보십시오. – kangax

답변

1

SVG에서이 작업을 수행했다면 매우 편리 할 것입니다. 불행히도 캔버스는 즉각적인 그리기 표면입니다. 즉, 무언가를 그릴 때 캔버스는 그려진 것을 기억하지 않습니다.

그리기 단계에서 그릴 때 필요한 모든 정보 (노드 및 가장자리)를 직접 추적해야합니다. 그렇지 않으면 단순히 정보가 없습니다.

관련 문제