Tôi đang cố gắng sử dụng canvas HTML5 để vẽ đường màu đỏ ở bên trái của đường màu xanh lá cây. Đây là javascript của tôi:Tại sao tôi không thể vẽ hai dòng màu khác nhau trong canvas HTML5 của mình?
var canvas = document.createElement('canvas');
canvas.height = 150;
canvas.width = 150;
var canvasContext = canvas.getContext('2d');
canvasContext.beginPath();
// Draw the red line.
canvasContext.strokeStyle = '#f00';
canvasContext.moveTo(10, 0);
canvasContext.lineTo(10, 100);
canvasContext.stroke();
// Draw the green line.
canvasContext.moveTo(50, 0);
canvasContext.strokeStyle = '#0f0';
canvasContext.lineTo(50, 100);
canvasContext.stroke();
document.body.appendChild(canvas);
Tuy nhiên, trong Google Chrome, tôi nhận được đường kẻ màu xanh đậm ở bên trái của đường kẻ màu xanh lục nhạt. Tại sao? Tôi gọi đột quỵ hai lần phải không? Do đó, tại sao cơn đột quỵ đầu tiên của tôi ảnh hưởng đến cơn đột quỵ thứ hai của tôi?
Here là một JSFiddle minh họa ý của tôi.
Cảm ơn, nếu đó là trường hợp, tôi có một câu hỏi thứ 2: Tại sao dòng bên trái lại tối hơn cái kia? Tôi đã không đặt giá trị độ mờ cho cả hai dòng, vậy tại sao canvas lại pha trộn các màu? – dangerChihuahua007
Tôi thành thật không biết. Nhìn vào [tài liệu] (http://dev.w3.org/html5/2dcontext/#dom-context-2d-beginpath), có vẻ như 'beginPath()' xóa đường dẫn con, vì vậy có thể dòng thứ hai là (bằng cách nào đó) một sự kết hợp của cái trước và cái hiện tại. – Blender
Tôi nghĩ nó bởi vì bạn vẽ nó hai lần, nếu bạn loại bỏ đột quỵ ban đầu, cả hai sẽ cùng màu, mặc dù điều này vẫn còn lạ, tôi không nghĩ rằng bộ đệm khung bị xóa, khi bạn gọi đột quỵ nhiều lần, hoặc một cái gì đó để làm với độ mờ mặc định. –