Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วาดวงกลมที่เต็มไปด้วยสี่เหลี่ยมสีแบบสุ่มบนผ้าใบ HTML5


เมื่อเราต้องการเติมพิกเซลขนาด 1x1 ให้กับวงกลมโดยใช้สีต่างๆ ในเบราว์เซอร์ เราสามารถใช้วิธีการง่ายๆ ดังนี้:

  • วาดพิกเซลทั้งหมดด้วยสีแบบสุ่มในตารางขนาด 200x200 บนผืนผ้าใบ
  • การเปลี่ยนโหมดคอมโพสิต
  • วาดวงกลมด้านบน

ให้เราดูตัวอย่าง:

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 + ')';
}