1. Vẽ đường thẳng trong Canvas
Một đường thẳng sẽ có những tính chất sau:
- Vị trí bắt đầu, vị trí kết thúc.
- Chiều rộng của đường thẳng.
- Màu của đường thẳng
- Định dạng hai đầu múi của đường thẳng.
Vẽ đường thẳng:
Để vẽ đường thẳng chúng ta phải xác định vị trí bắt đầu và vị trí kết thúc, mỗi vị trí sẽ được xác định bởi khoảng cách so với lề trái và khoảng cách so với lề trên (trái, trên)
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <canvas id= "myCanvas" width= "400" height= "200" ></canvas> <script> // Lấy đối tượng Canvas var canvas = document.getElementById( 'myCanvas' ); // Chọn đối tượng vẽ 2D var context = canvas.getContext( '2d' ); // Tiến hành vẽ context.beginPath(); // Khai báo vẽ đường thẳng mới context.moveTo(10, 10); // Điểm bắt đầu context.lineTo(490, 190); // Điểm kết thúc context.stroke(); // Tiến hành vẽ </script> |
Trong đó chúng ta có:
- Sử dụng hàm
beginPath()
để khai báo một đường thẳng mới - Sử dụng hàm
moveTo(position)
để xác định điểm bắt đầu. - Sử dụng
lineTo(position)
để xác định điểm kết thúc - Sử dụng hàm
stroke()
để tiến hành vẽ.
Kết quả:
Chiều rộng và màu của đường thẳng:
Để chọn chiều rộng cho đường thẳng thì ta sử dụng thuộc tính lineWidth
, để chọn màu ta sử dụng thuộc tính strokeStyle
.
1 2 3 4 5 6 7 8 9 10 11 12 13 | // Lấy đối tượng Canvas var canvas = document.getElementById( 'myCanvas' ); // Chọn đối tượng vẽ 2D var context = canvas.getContext( '2d' ); // Tiến hành vẽ context.beginPath(); // Khai báo vẽ đường thẳng mới context.moveTo(10, 10); // Điểm bắt đầu context.lineTo(380, 180); // Điểm kết thúc context.lineWidth = 15; // rộng 15px context.strokeStyle = 'blue' ; // Màu xanh context.stroke(); // Tiến hành vẽ |
Định dạng hai đầu đường thẳng:
Định dạng hai đầu đường thẳng hay còn gọi là Line Cap.
Để định dạng line Cap thì ta sử dụng thuộc tính lineCap
và nó sẽ có một trong ba giá trị sau:
- butt : vuông góc tại điểm, có chiều bình thường
- round : bo tròn, dài hơn bình thường do hai đầu bổ sung một đoạn bo tròn.
- square : bo hình chữ nhật, dài hơn bình thường do hai đầu bổ sung đoạn hình chữ nhật.
2. Vẽ đường thẳng nối liên tiếp trong Canvas
Các ví dụ trên chỉ dừng lại ở mức vẽ một đường thẳng, tuy nhiên bạn có thể vẽ nhiều đường thẳng liên tiếp bằng cách sử dụng hàm lineTo()
.
1 2 3 4 5 6 7 8 9 10 11 12 13 | var canvas = document.getElementById( 'myCanvas' ); var context = canvas.getContext( '2d' ); // Tiến hành vẽ context.beginPath(); // Khai báo vẽ đường thẳng mới context.moveTo(10, 10); // Điểm bắt đầu context.lineTo(390, 10); // Điểm giữa context.lineTo(20, 190); // Điểm giữa context.lineTo(390, 190); // Điểm kết thúc context.lineWidth = 15; // rộng 15px context.strokeStyle = 'blue' ; // Màu xanh context.lineCap = 'butt' ; context.stroke(); // Tiến hành vẽ |
0 Nhận xét