2014-09-11 3 views
17

에서 점선을 제거하는,이어떻게 캔버스 컨텍스트에서 점선을 그리려면 HTML 컨텍스트

var canvas = document.getElementById('canv'); 
    ctx = canvas.getContext('2d');   
    ctx.setLineDash([5]); 

사용합니다. dashs 제거

ctx.setLineDash([0]); 

는 데스크톱 브라우저에서 작동하지만 이 모바일 사파리에서 작동하지 않습니다. 대시를 제거하고 평범한 연속적인 실선을 그리는 또 다른 방법이 있습니까?

감사

답변

13

당신은 빈 배열을 전달할 수 context.save/context.restore

ctx.save(); 
ctx.setLineDash([5]); 
// draw dashed stuff 
ctx.restore(); 

// now the default solid line is restored 
+0

효과가있을 수 있지만 더 복잡한 알고리즘으로 포장하는 것이 항상 바람직하지는 않습니다. 그래서 정말로 @ Denis-kreshikhin 대답을 선택할 것입니다. –

+3

@PauloBueno. 나는 동의한다. 답을 할 때, 나는 []이 대시를 지우지 않을 것이라는 것을 몰랐다. 아니면 데니스의 대답이 있기 전에 그 옵션을 사용할 수 없었을지도 모른다. 어쨌든, 캔버스 상태를 저장하거나 .restore 할 설계상의 이유가 없다면 이제 대시를 지우기 위해'[]'를 사용할 것입니다. 머리를 가져 주셔서 감사합니다. :-) – markE

+0

고마워요. :) –

34

내부 코드를 감싸. 또한 선이 단색이됩니다.

ctx.setLineDash([]) 
+5

그 대답입니다. 분명히 더 많은 표를 얻어야합니다. – Rodrigo

+5

허용되는 답변보다 훨씬 낫습니다. 상황을 저장하고 복원하는 것은 비용이 많이 들고 시나리오에서 낭비입니다. – mclaassen

관련 문제