3
여기 내 코드가 있습니다. 어떤 이유로 그것은 주로 회색으로 선을 그립니다.캔버스 스트로크 안정적으로 변하지 않습니까?
그리기 호출이 실제로 겹치지 않아도 일부 선이 서로 위에 두 획 스타일로 그려지는 것처럼 보일 것입니다. 일부 선은 내부 회색으로 흰색입니다. 내 흰색 선은 내 회색 선보다 두껍기 때문에 분명히 두 선을 그립니다. 캔버스 그리기 호출이 비동기식입니까?
왜 그런가?
for (var i=0; i<minor_lanes.length; i++) {
connect(minor_lanes[i], "#333", 3);
}
for (var i=0; i<major_lanes.length; i++) {
connect(major_lanes[i], "#fff", 4);
}
for (var i=0; i<limited_lanes.length; i++) {
connect(limited_lanes[i], "#FFFF99", 2);
}
function connect(id, color, width) {
if (!id) {
return;
}
ctx.lineWidth = width;
ctx.strokeStyle = color;
$('#' + id).each(function() {
var laneX = parseInt($(this).css('left')) + $(this).width()/2;
var laneY = parseInt($(this).css('top')) + $(this).height()/2;
ctx.moveTo(x,y);
ctx.lineTo(laneX, laneY);
ctx.stroke();
});
}
을 잊지 생각 그리고 그것을했다. 그래서 저는 단 한 줄의 길을 짓고있었습니다. 캔버스 드로잉에 대한 문서는 좌절감이 많지 않습니다. 도와 주셔서 감사합니다. – Joren
[이 페이지.] (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html) 모르는 경우 "Frustratingly sparse" 'beginPath()'는 실제로 현재 경로의 의미에 영향을 미칩니다.'closePath()'는 기본적으로 마지막 서브 패스의 시작 부분에'lineTo()'를 추가 한 다음 그 지점에서 새로운 서브 패스를 시작합니다. – ellisbben