29 Ağustos 2017 Salı

Processing Nedir?

Processing, hazır fonksiyon ve nesneleri kullanarak görsel odaklı geliştirilen basit seviyede bir programlama dili ve tümleşik bir geliştirme ortamıdır. Programlamanın temellerini görsel bir yaklaşımla öğretmek için kullanılır. Aynı zamanda elektronik bir eskiz defteri görevi de görmektedir.
-Açık kaynak kodludur, 100 den fazla kütüphane içermektedir.
-Java üzerine kurulmuştur. Her ne kadar Java ya benzerliği dikkat çekse de grafikler ve iletişim metodları üzerine özel niteliklere sahiptir.
-Geliştirme arayüzü processing development envirioment (PDE), processing için özel olarak tasarlanmış basit, sade ve kolay bir arabirimdir.
-Video, resim, ses gibi çoklu ortam türleriyle sorunsuz olarak çalışabilmektedir.
-Genel olarak öğrenciler, sanaçılar ve tasarımcılar tarafından kullanılmaktadır.

Tarihçesi
2001 yılında Casey Reas ve Benjamin Fry tarafından oluşturulmuş bir programlama dilidir. Türkiye'de çok yaygın olmasa da yurtdışında görsel sanatçıların sıklıkla kullandığı bir programlama dilidir.

Processing ile Neler Yapabiliriz ?

-Arduino ile etkileşimli çalışabilecek programlar yazmayı sağlar.
-Temelde hızlı  prototip çıkarma ve eskiz çalışması yapma için geliştirilmiştir. Daha sonraları programlama temellerini anlayabilmek ve anlatabilmek için programlamaya giriş eğitim aracı olarak da kullanılmaya başlanmıştır. Çünkü bilgisayar mimarisine girmeden temel programlamayı kavrayabilme olanağı sağlamaktadır.
-Kağıt üzerine çizdiğiniz herhangi bir karakteri kolaylıkla programa aktararak onu canlandırmamızı sağlar.

Örnek-1) Meteor stream simulation
Örnek Amacı :  Uzaktan bize doğru yaklaştıkça boyutları büyüyen, sürekli kendilerini yenileyen, hızlarını mouse ile kontrol edebileceğimiz cismler oluşturmak.


Örnek Kodu :
star[] stars = new star[400];
float speed;

void setup() {
  size(400, 400);
  for(int i=0; i< stars.length; i++) {
     stars[i] =new star();
  }

}

void draw() {
  speed = map(mouseX, 0, width, 0, 50);
  background(0);
  translate(width/2, height/2);
  for(int i=0; i< stars.length;i++) {
     stars[i].update() ;
     stars[i].show();
  }
}

class star {
  float x;
  float y;
  float z;
 
  float pz;
 
  star() {
    x = random(-width, width);
    y = random(-height, height);
    z = random(width);
    pz = z; 
  }
 
  void update() {
    z = z - speed;
    if(z < 1) {
      z = width;
      x = random(-width, width);
      y = random(-height, height);
      pz = z;
    }
  }
 
  void show() {
   fill(255);
   noStroke();
  
   float sx = map (x / z, 0, 1, 0, width);
   float sy = map(y / z, 0, 1, 0, height);
  
   float px =  map (x /pz, 0, 1, 0, width);
   float py = map(y / pz, 0, 1, 0, height);
  
   pz = z;
   stroke(255);
   line(px, py, sx, sy);
  
  }
}


İçerik Hazırlayan: Melisa Öztürk