X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fshape.js;fp=src%2Fshape.js;h=fd4a36835d80a34d6cd9f7e3ce44e2f89916a406;hb=cb6e5516ca0af9f6ba27d9198b06b4eba35d6996;hp=293d8cc4c54129d626cd4d9858862aa311da505a;hpb=3734b889856fed1eebd21d19fda0a6f47f637011;p=flapp%2Fflapp.git diff --git a/src/shape.js b/src/shape.js index 293d8cc..fd4a368 100644 --- a/src/shape.js +++ b/src/shape.js @@ -93,6 +93,7 @@ FlappShape.prototype = { } rca.push("ctx.translate("+minX*factor+","+minY*factor+");"); var edgesUsed = new Uint8Array(edgeInfoList.length); // 0 initialized + var pathStarted = false; for (var i1 = 0, l1 = edgeInfoList.length ; i1 < l1 ; i1++) { var edgeInfo = edgeInfoList[i1]; var edges = edgeInfo.edges; @@ -105,7 +106,13 @@ FlappShape.prototype = { } var currIndex = i1; console.log(edgeInfo); - rca.push("ctx.beginPath("+(edges[0]-minX)*factor+","+(edges[1]-minY)*factor+");"); + // ref) http://d.hatena.ne.jp/yoya/20120313/canvas + if (pathStarted) { + rca.push("ctx.moveTo("+(edges[0]-minX)*factor+","+(edges[1]-minY)*factor+");"); + } else { + rca.push("ctx.beginPath("+(edges[0]-minX)*factor+","+(edges[1]-minY)*factor+");"); + pathStarted = true; + } do { if (edgesUsed[currIndex]) { console.error("duplicate link edge"); @@ -126,7 +133,6 @@ FlappShape.prototype = { break; // self loop } } while ((currIndex = edgeInfo.next) !== null); - rca.push("ctx.closePath();"); } rca.push("ctx.fill();"); if (factor !== 1) {