Temel Processing Fonksiyonları

         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?)

Nadir Kayıkçı dedi ki...

Açıklayıcı, güzel bir anlatım olmuş, yazılarının devamını bekliyoruz.

Unknown dedi ki...

Teşekkür ederim fırsat buldukça yazmaya çalışacağım

Unknown dedi ki...

sen var ya adamsın, yaptığın işe devam et şuan sana çelenk çiçek falan yollayabilirim

Unknown dedi ki...

Teşekkürler. Faydalı bir Bilgi olmuş

Yorum Gönder