HTML Canvas, web geliştiricilerinin sayfalara dinamik ve etkileşimli grafikler eklemelerine olanak tanıyan güçlü bir özelliktir. Bu özellik, çeşitli çizimler, animasyonlar ve interaktif içerikler oluşturmak için kullanılır. Bu yazıda, HTML Canvas Graphics’in temel konseptlerini ve nasıl kullanılacağını anlatacağım.
HTML Canvas Nedir?
HTML Canvas, web sayfalarına görsel içerik eklemek için kullanılan bir HTML5 özelliğidir. Bir canvas elemanı oluşturulduğunda, JavaScript kullanılarak bu alana çizimler yapılabilir, renkler eklenir, animasyonlar oluşturulur ve daha fazlası yapılabilir.
Canvas Oluşturma:
Canvas elemanını HTML içinde oluşturmak oldukça basittir. Aşağıdaki örnekte, “myCanvas” id’li bir canvas elemanı oluşturuyoruz:
<canvas id="myCanvas" width="400" height="200"></canvas>
JavaScript ile Canvas Kullanımı:
Şimdi, oluşturduğumuz canvas üzerinde bir çizim yapalım. Aşağıdaki örnek, basit bir dikdörtgen çizimini göstermektedir:
<script>
// Canvas elemanını seç
var canvas = document.getElementById("myCanvas");
// 2D çizim bağlamını al
var ctx = canvas.getContext("2d");
// Dikdörtgen çiz
ctx.fillStyle = "#FF0000"; // Dikdörtgen rengi
ctx.fillRect(50, 50, 100, 80); // x, y, genişlik, yükseklik
</script>
Bu kod, belirtilen renkte bir dikdörtgeni belirtilen koordinatlarda ve boyutlarda çizer.
İnteraktiflik Eklemek:
Canvas aynı zamanda kullanıcı etkileşimine de olanak tanır. Aşağıdaki örnek, fare tıklamalarına yanıt olarak bir daire çizer:
<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
canvas.addEventListener("click", function(event) {
var mouseX = event.clientX - canvas.getBoundingClientRect().left;
var mouseY = event.clientY - canvas.getBoundingClientRect().top;
// Daire çiz
ctx.fillStyle = "#00FF00";
ctx.beginPath();
ctx.arc(mouseX, mouseY, 20, 0, 2 * Math.PI);
ctx.fill();
});
</script>
Bu örnek, fare tıklamalarına yanıt olarak canvas üzerine bir daire ekler.
HTML Canvas Graphics, yaratıcı ve etkileşimli web içeriği oluşturmak için güçlü bir araçtır. Bu özellik, web geliştiricilerine görsel içeriklerini kişiselleştirmeleri ve kullanıcılarla etkileşimde bulunmaları için geniş bir yelpaze sunar.