HTML5: vẽ đường thẳng với Canvas lineTo
Để vẽ một đường thẳng sử dụng HTML5 Canvas, chúng ta dùng các phương thức moveTo(), lineTo() và stroke()
Đầu tiên trong chúng ta đặt thẻ Canvas vào trong body
<canvas id="myCanvas" width="578" height="200"></canvas>
1 2 3 4 5 6 7 8 |
window.onload = function(){ var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d"); context.moveTo(100, 150); // moveTo(x,y) context.lineTo(450, 50); //(lineTo(x,y)) //context.lineWidth = 15; // Độ rộng cho đường thẳng //context.strokeStyle = "#ff0000"; // Màu của đường thẳng context.stroke(); }; |
Giải thích các dòng trên:
moveTo(): Đưa con chuột về vị trí được chỉ định (x:100x, y:150px)
lineTo(): vẽ một đường thẳng tới vị trí được chỉ định. Trong ví dụ trên lineTo() vẽ một đường thẳng từ vị trí moveTo chỉ định tới vị trí
stroke() gán màu cho đường đã vẽ, nếu không được chỉ định nó sẽ được mặc định là màu đen.
Kết Quả:

Để gắn bo tròn cho hai đầu của đường thẳng bạn có thể tham khảo bài viết về lineCap tại đây.



.jpg)

Value có 3 giá trị
"miter", "round" và "bevel" lần lược sẽ cho ra kết quả như sau:Ứng dụng vẽ hình tam giác, hình vuông và ngôi sao với lineTo()
Javascript:
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
// bắt đầu vẽ tam giác
ctx.beginPath();
ctx.moveTo(100,20);
ctx.lineTo(180, 80); // đường 1
ctx.lineTo(100, 80); // đường 2
ctx.closePath(); // đường 3
ctx.lineWidth = 5; // độ rộng đường viền
ctx.strokeStyle = "black"; // màu đường viền
ctx.stroke(); // vẽ đường viền
ctx.fillStyle="red"; // màu nền
ctx.fill(); // tô màu nền cho tam giác
// vẽ hình ngôi sao
ctx.beginPath();
ctx.moveTo(180, 50);
ctx.lineTo(300,120);
ctx.lineTo(250,20);
ctx.lineTo(200,120);
ctx.lineTo(320,50);
ctx.closePath();
ctx.strokeStyle = "black";
ctx.fillStyle = "white";
ctx.fill();
ctx.stroke();
// vẽ hình vuông
ctx.beginPath();
ctx.moveTo(350, 10);
ctx.lineTo(350,110);
ctx.lineTo(450,110);
ctx.lineTo(450,10);
ctx.closePath();
ctx.strokeStyle = "black";
ctx.fillStyle = "yellow";
ctx.fill();
ctx.stroke();
};
Kết quả: