Herkese merhaba. Sınavlarımın
başladığı bugünlerde sınavlarımın kötü gitmesinin ardından
(bakınız:büte kalan dersler) bir nebze kafa dağıtmaya karar
verdim. Bunu da bloguma yazı yazarak yapmak istedim. Yazımın
konusunu da önceki yazıma devam şeklinde Processing'ten seçtim.
Önceki Processing yazımdan gelen olumlu tepkiler için teşekkür
ederim.
Şimdi Processing'te temel
fonksiyonları ve çıktılarına bakalım.
Öncelikle piksel(pixels) kavramına
değinelim. Piksel , tüm digital görüntülerin en küçük parçası
olan üçlü nokta grubuna denir. Renkli görüntü sistemlerinde
,bir rengin elde edilmesi için 3 renk kullanılmaktadır(r,g,b). Bu
renkler kırmızı(red),green(yeşil),blue(mavi). Öncelikle
piksellerden bahsetmemin sebebi Processing'te işlemlerinizi
pikseller üzerinden gerçekleştiriliyor.
Şimdi sistemi basit kodlar üzerinden
inceleyelim:
Processing'in olmazsa olmaz 2
fonksiyonu bulunmakta.
void setup ( ) : İsminden de
anlaşılacağı üzerine program ilk başlatıldığında içinde
yazan kısımı çalıştırır ve program tekrar başlatılana kadar
tekrar çalıştırılmaz. Ben bu bölümde daha çok ekran boyutunu
tanımlıyorum.
void draw( ) : Çizim işlemlerinin
yapıldığı bölümdür. Fonksiyonun içindeki komutlara göre
işlem yapılır ve son işlemden sonra tekrar başa döner. Sonsuz
döngü de diyebiliriz. Arduino'da ki void loop ile aynı görevdedir.
Arduino'nun Processing'i örnek aldığını unutmayın.
Gelelim çizim fonksiyonlarına
size(x,y): Çizim işlemi yapılacak
ekranın boyutunu belirlemektedir. Bu boyut piksel cinsinden olup x
genişlik y yüksekliktir.
background(r,g,b): Ekranın arka plan
rengini belirler. background(w) şeklinde de kullanılabilir. W
değişkeni burada web renkleri cinsinden yazılabilir. Örneğin
background(#03FFF0) gibi. Burada ki web renklerini tools menüsünden
Color Selector ile seçebilirsiniz.
stroke(r,g,b); Çizimi yapılacak ya
da ekrana çizilecek nesnelerin rengini belirler. Background
fonksiyonu ile aynı mantıkta çalışmaktadır.
line(x,y,z,t): Line fonksiyonu çizgi
çizme işlemlerinde kullanılır.Fonksiyonun değişkenleri x ve y
çizginin başlangıç noktasının koordinatları, z ve t ise bitiş
noktasının koordinatları.
Şimdi öğrendiğimiz kısımlar ile
ilgili örnek bir program yazalım ve çıktısını görelim.
void setup ( ) {
size(400,400); // 400,400
piksellik ekran belirledik.
}
void draw( ) {
background(#133E3B); //
arkaplanı yeşilimsi renge çevirdik
stroke(255,255,255); //
çizimleri beyaz yapmasını istedik
line(0,0,200,200); //
0,0 dan 200,200 e çizgi çizdirdik
}
Aynı işlemde koordinat belirtmek
yerine line(0,0,width/2,height/2) şeklinde de kullanabilridik.
Benim en beğendiğim fonksiyonlardan
biri de mouseX, mouseY fonksiyonları. Bu fonksiyonlar sayesinde
mouse koordinatlarına ulaşıp ona göre işlem yaptırabilirsiniz.
Bu işlemi sadece mouseX ve mouseY gibi basit bir komut ile yapmak
gerçekten büyük bir kolaylık.
Çizgi çizmekten başka rect(x,y,z,t)
ile kare, ellipse(x,y,z,t) ile de elips çizebilirsiniz. Bununla
ilgili basit örnekten yapmaktan ziyade biraz da eğlenceli
bulduğumdan LearnProcessing kitabındaki örneği
göstereceğim.EllipseMode(CENTER),RectMode(CENTER) komutları da
çizim işlemini ekranın ortasında yapar ve o noktayı merkez alır.
Önce görmediğimiz bir kaç
fonksiyonu daha gösterelim:
smooth() : Geometrik cisimlerin daha
net tabiri caiz ise pürüzsüz göstermek için kullanılır.
fill(r,g,b): Çizdirilecek olan
geometrik şeklin iç kısmını renklendirmek için kullanılır.
Şimdi küçük uzaylımızı
oluşturursak;
void setup() {
size(200,200); // boyutu ayarladık
background(255); // arkaplanı beyaz
atadık
smooth();
}
void draw() {
// kare ve elips merkezi orta nokta
aldı
ellipseMode(CENTER);
rectMode(CENTER);
// gövde kısmını çizelim
stroke(0);
fill(150);
rect(100,100,20,100);
// kafa kısmını çizelim
fill(255);
ellipse(100,70,60,60);
// gözleri çizelim
fill(0);
ellipse(81,70,16,32);
ellipse(119,70,16,32);
// bacaklarını çizelim
stroke(0);
line(90,150,80,160);
line(110,150,120,160);
}
Umarım bu paylaşımlar birilerine
yardımcı oluyordur. Bir kişinin bile bir şeyler kazanması çok
büyük bir mutluluktur. Son olarak herkese iş veya okul yaşamında
kolaylıklar diler bol bol Open-Source günler dilerim.
Kaynak:
1)LearnProcessing
2)www.processing.com
3)ElektrikPort
4 yorum: (+add yours?)
Açıklayıcı, güzel bir anlatım olmuş, yazılarının devamını bekliyoruz.
Teşekkür ederim fırsat buldukça yazmaya çalışacağım
sen var ya adamsın, yaptığın işe devam et şuan sana çelenk çiçek falan yollayabilirim
Teşekkürler. Faydalı bir Bilgi olmuş
Yorum Gönder