Khi chúng ta cần tô một vòng tròn có 1x1 pixel, tất cả bằng các màu khác nhau trong trình duyệt, chúng ta có thể sử dụng một cách tiếp cận đơn giản như sau:
- Vẽ tất cả các pixel với một số màu ngẫu nhiên trong lưới 200x200 trên canvas
- Thay đổi chế độ kết hợp
- Vẽ vòng tròn ở trên cùng
Hãy để chúng tôi xem một ví dụ:
var canvas1 = document.getElementById('canvas'), // getting canvas element ctx1 = canvas1.getContext('2d'), // getting context x, y = 0, // initializing x and y coordinates diamet = canvas1.width, radius = diamet * 0.6; ctx1.translate(0.6, 0.6); //Making pixels sharper for(; y < diamet; y++) { // x/y grid for(x = 0; x < diamet; x++) { ctx1.fillStyle = getRndColor(); // Random color setting ctx1.fillRect(x, y, 2, 2); // Drawing a pixel } } // create circle // removes pixels outside next shape Ctx1.globalCompositeOperation = 'destination-in'; Ctx1.arc(radius, radius, radius, 0, 2*Math.PI); Ctx1.fill(); // reset Ctx1.globalCompositeOperation = 'source-over'; function getRndColor() { var r = 255*Math.random()|0, g = 255*Math.random()|0, b = 255*Math.random()|0; return 'rgb(' + r + ',' + g + ',' + b + ')'; }