2011-07-26 8 views
3

한 채우기와 다른 채우기 사이의 기존 공간이 귀찮습니다. 각 채우기는 경사면에 맞습니다. 정확히 줄을 채우기를 기대하지만 공간이 있습니다.HTML5 Canvas에서 채우기와 채우기 사이의 간격을 제거하는 방법은 무엇입니까?

var canvas = document.createElement("canvas"); 
canvas.width = 120; canvas.height = 300; 
document.body.appendChild(canvas); 
var ctx = canvas.getContext("2d"); 

ctx.fillStyle = "#fff"; ctx.fillRect(0, 0, 120, 300); 
ctx.fillStyle = "#000"; ctx.beginPath(); 
ctx.moveTo(0, 0); ctx.lineTo(0, 300); ctx.lineTo(120, 300); ctx.fill(); 
ctx.fillStyle = "#000"; ctx.beginPath(); 
ctx.moveTo(120, 300); ctx.lineTo(0, 0); ctx.lineTo(120, 0); ctx.fill(); 

당신은 검은 삼각형의 흰색 선 (공백)를 볼 수 있습니다

이 샘플 코드입니다. 사실 삼각형의 포인트는 플래시 용 자동 생성 프로그램 인 에 의해 만들어지며 플래시는 공백없이 삼각형을 표시 할 수 있지만 HTML5는 표시 할 수 없습니다. 누구나 그 줄을 지울 생각이 있습니까?

답변

1

당신은 화면 픽셀이 0이 아니라 이후 좌표 일부 0.5을 추가해야 할 수도 있습니다 0 자세한 내용은 1 사이의 http://diveintohtml5.ep.io/canvas.html#paths

+0

내가 추가해야하는 부분이 궁금합니다. 모양의 포인트는 자동 생성되므로 0.5 또는 하위 0.5를 추가해야한다고 결정하는 것은 매우 어렵습니다. – tkihira

3

당신은에 획을 추가 할 수있는 "구하라 교수 마크 업"을 참조하십시오 이 문제를 추가하여 삼각형 :

ctx.lineWidth = 1; ctx.strokeStyle = "#000"; ctx.closePath(); ctx.stroke(); 

예 : http://jsfiddle.net/wxh4R/

// your Triangle 
ctx.fillStyle = "#000"; ctx.beginPath(); 
ctx.moveTo(0, 0); ctx.lineTo(0, 300); ctx.lineTo(120, 300); ctx.fill(); 
// Stoke 
ctx.lineWidth = 1; ctx.strokeStyle = "#000"; ctx.closePath(); ctx.stroke(); 
+0

매우 좋게 보이지만 몇 가지 나쁜 경우가 있습니다. 예를 들어, fillStyle은 그래디언트 채우기 또는 비트 맵 채우기를 사용합니다. 어떤 아이디어? – tkihira

+0

그 경우에는 원래 위치에 하나, x 방향으로 ~ 0.8px만큼 이동 한 것과 y 방향으로 ~ 0.8px만큼 이동 한 것을 각각 세 번 그릴 수 있습니다 ... – Floern

+0

fillStyle에 알파 값이 있지만 나는 네 생각이 아주 좋다고 생각해. – tkihira

0

는 비트 맵에 그림을 변환합니다.

+1

안녕하세요, stackoverflow에 오신 것을 환영합니다. 예제 코드 나 유용한 링크를 추가하면 답이 더 도움이 될 것입니다. [이 내용을 읽으십시오] (https://stackoverflow.com/help/how-to-answer). – kamyl

+0

이 질문에 대한 답을 제공하지 않습니다. 충분한 [평판] (https://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 주석 달기] (https://stackoverflow.com/help/privileges/comment) 할 수 있습니다. 대신, [질문자의 설명이 필요없는 답변을 제공하십시오] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). - [From Review] (리뷰/저품절 게시물/17422027) – FluffyKitten

관련 문제