tuval etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
tuval etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

HTML Canvas Ders_3 Koordinatlar

Canvas (Tuval) Koordinatları

Öncelikle, oluşturduğumuz html tuval (canvas) elemanını, iki boyutlu bir ızgara gibi düşünmeliyiz. (Birbirine paralel, yatay ve dikey çizgiler çizilmiş bir kağıt gibi hayal edebiliriz. Hatta paralel iki çizgi arasındaki mesafeyi de 1 piksel olarak düşünmek iyi olacaktır. İşte bu paralel çizgilerin kesişim noktalarını koordinat olarak kullanacağız.)

Tuvalin sol üst köşesini başlangıç noktası olarak kabul edeceğiz. Bu köşenin, sağa ve aşağıya giderken başlangıç yani sıfıra sıfır (0,0) noktası olacağını düşünmeliyiz.

Tuvalde; bir noktanın koordinatını, iki değer ile vereceğiz: (x,y). Bunların ilki (x), başlangıç noktasına göre kaç pixel sağda ikincisi ise (y) kaç pixel aşağıda olduğunu belirtmektedir. Mesela (20,145) noktası, başlangıç noktasından 20 pixel sağda, 145 pixel aşağıdadır.

Bir Çizgi Çizmek

Düz bir çizgi çizmek için aşağıdaki iki metodu kullanırız:

  • moveTo(x,y) : Çizginin başlangıç noktasıdır.
  • lineTo(x,y) : Çizginin bitiş noktasıdır. 
Bir çizgi için, tabi ki önce bir tuvale (canvas) ihtiyacımız olacak. Tuvalimizi tanımlayalım: <canvas id="kanvasim" width="200" height="100"
style="border:1px solid #000000;">
</canvas> 

Oluşturduğumuz tuval (<canvas>) elamanı; genişliği 200 pixel, yüksekliği 100 pixel olan şöyle bir dikdörtgendir:


Şimdi bu tuvalin sol üst köşesi bizimim için (0,0) yani başlangıç noktası olacaktır.

Bir çizgi çizmek istersek, kullanmamız gereken başka bir metot da "ink" metodu olarak bilinen metotlardan birisi olan stroke() metotudur.

Yukarıdaki tuvale bir köşegen çizmek istiyoruz. Önce bir başlangıç notkası tanımlamalıyız (0,0), sonra bir bitiş noktası tanımlamalıyız (200,100) ve en son stroke() metodu ile de çizgiyi çizmeliyiz:

<script>
var kanvasim = document.getElementById("myCanvas");
var cizim = kanvasim.getContext("2d");
cizim.moveTo(0,0);
cizim.lineTo(200,100);
cizim.stroke();
</script>

Tarayıcımız bu kodları şöyle gösterecektir:



Tarayıcınız, HTML canvas elemanını desteklememektedir..


Bir Daire Çizmek

Bir tuvale, bir daire çizmek için beginPath() ve arc(x,y,r,start,stop) metotları kullanılır ve yine stroke() metodu ile çizilir. Aşağıdaki kodlar, yukarıda belirttiğimiz <canvas> elemanına tam bir daire çizecektir:

var kanvasim = document.getElementById("myCanvas");
var cizim = kanvasim.getContext("2d");
cizim.beginPath();
cizim.arc(95,50,40,0,2*Math.PI);
cizim.stroke();

Tarayıcımız bu kodları şöyle gösterecektirrr:



Tarayıcınız, HTML canvas elemanını desteklememektedir..


arc(x,y,r,start,stop) metodundaki x ve y; dairenin merkezinin koordinatlarıdır ve r ise dairenin yarıçap uzunluğudur. start ve stop değerleri ise dairenin ne kadarının çizileceğini belirler.


HTML Canvas Ders_2 Bir Obje Çizmek

JavaScript ile Canvasa Obje Çizimi

Aşağıda bir dökdörtgen çizimi örneği görüyoruz:

<canvas id="kanvasim" width="200" height="100"
style=
"border:1px solid #000000;">
</canvas>
<script>
var kanvas = document.getElementById("kanvasim");
var kalem = kanvas.getContext("2d");
kalem.fillStyle = "#FF0000";
kalem.fillRect(0,0,150,75);
</script>


Bu kodlar, tarayıcımızda şöyle görünecektir:




Şimdi beraberce bu kodları anlamaya çalışalım...

1- Öncelikle, boş bir canvas elemanı oluşturuyoruz:

<canvas id="myCanvas" width="200" height="100"
style=
"border:1px solid #000000;">
</canvas>

2- "kanvas" adinda bir javascript değişkeni oluşturuyoruz: var kanvas  

id değerini kullanarak dökümanımızdaki <canvas> elemanına ulaşıyoruz: document.getElementById("kanvasim")

Oluşturduğumuz değişkene bu kanvası yüklüyoruz: 

var kanvas = document.getElementById("kanvasim");

3- Yine javascript kodları ile, <canvas> elemanımıza, iki boyutlu ("2d") çizim yapacak bir çizim aracı oluşturuyoruz: kanvas.getContext("2d")

Bu çizim aracını kalem adını verdiğimiz bir değişkene akatarıyoruz: var kalem = kanvas.getContext("2d");

4- Oluştuduğumuz kalem ile çizim yapıyoruz:
  • kalem.fillStyle = "#FF0000"; kodu ile çizeceğimiz şeklin dolgusunu kırmızı ayarlıyoruz. Yani kalemimizi kırmızı kalem yapıyoruz. (fillStyle yapısı, bir CSS rengi, bir desen veya bir gradient (ışık efekti) olarak kullanılabilir. Biz burda kırmız dolgu rengini terçih ettik.) 
  • kalem.fillRect(0,0,150,75); kodu ile de, <canvas> elemanımızın içine bir dikdörtgen (Rectangle) çiziyoruz. İlk iki koordinat bir noktanın, son iki koordinat, diğer bir notkanın koordinatlarıdır. Şöyle ki:
(0,0,150,75) sayıları, çizeceğimiz dikdörtgenin sol üst (0,0) ve sağ alt (150,75)  köşelerinin koordinatlarıdır. Bu ölçüler, oluşturduğumuz tuval (canvas)'in genişlik ve yüksekliği baz alınarak verilmiştir. Yani bu koordinatlar, tuvalimizin sol üst köşesi başlangıç noktası kabul edilerek verilmiştir. Dikdörtgenimizin sol üst köşesi (0,0) tuvalimizin sol üste köşesine sıfırlanmıştır. Dikdörtgenimizin sağ alt köşesi ise (150,75) tuvalimizin sol üst köşesinin 150 piksel sağında ve 75 piksel aşağısındadır. 

HTML Canvas Ders_1 Tanıtım

HTML Canvas (Tuval) Nedir?

Bir <canvas> elemanı, bir web sayfasına, bir şekil (grafik) çizmek için kullanılır.

Yandaki resim, <canvas> elemanıyla oluşturulmuş dört tane şekil içermektedir. Bunlar: bir kırmızı dikdörtgen (red rectangle), bir gradient rectangle, bir çok renkli rectagle ve bir çok renkli text.

<canvas> elemanları, genellikle javascript kullanarak, hızlıca grafikler (şekiller) çizmek için kullanılır.

<canvas> elemanı sadece grafikler çizmek için kullanılmalıdır.

<canvas> elemanı; resimler, kutular, çemberler, textler çizmek için bir çok metoda sahiptir.

Tarayıcı Destekleri

Aşağıda tarayıcıların hangi sürümden itibaren <canvas> elemanını destekledikleri verilmiştir.

Element
<canvas>4.09.02.03.19.0

HTML Canvas Yazı Çizebilir:

Canvas, animasyonlu veya animasyonsuz, renkli yazılar çizebilir.

HTML Canvas Grafikler Çizebilir:

Canvas; (resimli, grafikli, şemalı) grafiksel veriler hazırlamamızı sağlayabilecek harika özellikler içerir.

HTML Canvas Grafikleri Canlandırılabilir:

Canvas grafikleri, hareket edebilir. Canvas ile basit sıçrayan bir toptan, karmaşık animasyonlara kadar bir çok uygulama yapılabilir.

HTML Canvas İnteraktif Olabilir:

Canvas elemanları, JavaScript hareket kodlarına cevap verebilir. Bir fare tıklaması ile bir canvas elemanına bir çok aksiyon yaptırmak mümkündür.

HTML Canvas Oyunlarda Kullanılabilir:

Canvas'ın animasyon metodları, HTML oyun uyglamaları için bir çok imkan sağlar.

HTML Canvas Elemanı:

Aşağıda bir <canvas> elemanı örneği verilmiştir:

<canvas id="myCanvas" width="200" height="100"></canvas>

<canvas> elemanı, bir id özelliği içermelidir. Bu id sayesinde, javascript kodlarıyla bu <canvas> elemanına ulaşmak mümkün olur.

width ve height özellikleri, <canvas> elemanına boyut vermek için gereklidir.

Bir html sayfası, birden çok <canvas> elemanı içerebilir.

Varsayılan olarak, bir <canvas> elemanı, kenarlıksız ve içeriksizdir.

Kenarlık eklemek için CSS özelliklerine başvurulur:

<canvas id="myCanvas" width="200" height="100"
style=
"border:1px solid #000000;">
</canvas>

Sonraki derste, bir <canvas> elemanı ile nasıl bir grafik cizileceğini göstereceğiz.