Processing for Android (Android Programlamaya Hızlı Bir Giriş)

Başlatan Cemre., 12 Ocak 2017, 21:03:46

tekosis

@Cemre.
ekranda bir sinüs sinyali çizdirmek istiyorum. algoritmama göre ekranda iki periyotluk sinüs sinyal görmem gerekiyor ama çok alakasız bir sinyal görüyorum. bu neden olabilir acaba?

kodlar;
float y=0;   float eski_y=0;   int x=0;   int eski_x=0;  

void setup() {
  size(720, 360);
  frameRate(30);
  stroke(255,255,0);     
  background(0);
  sayac=0;   eski_x=0;   eski_y=180;
}

void draw() { 
  cizim_yap();
    }
    
void cizim_yap(){    
  
  for(x=0;x<=displayWidth;x++)
    {
    y = (displayHeight/2) - ((displayHeight/4)*sin(x));
    line(eski_x,eski_y,x,y);
    eski_x=x;
    eski_y=y;
    }
  }


görmek istediğim ekran (tabiki resimdeki gibi height yazıları çıkmayacak) ;



benim aldığım ekran görüntüsü ;


İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

miyago

Merhaba

Bu programı hiç bilmiyorum ama şunlar olabailir

sin(x) radyan değer döndürüyor olabilir.
displayHeight hangi değeri geri döndürüyor px'mi pt'mi vs...
Birde formülde çizginin x ekseninin - bölgeye yada  + bölgeye çıkmasını söyleyen bir şart yok.

    y = (displayHeight/2) - ((displayHeight/4)*sin(x));

umarım faydası olur.

tekosis

@miyago teşekkür ederim. kafam resmen durmuş, açı değerini önce radyana çevirip sonra sinüs hesaplatınca düzeldi teşekkür ederim. ekran görüntüsü ;



yeni kodlar aşağıda ;
float y=0;  float eski_y=0;  float x=0;  float eski_x=0;  
int sayac=0;  float radyan=0; 
//---------------------------------------------------------------------
void setup() {
  size(720, 360);
  frameRate(30);
  stroke(255,255,0);     // Set line drawing color to white
  background(0,0,255);
  sayac=0;  x=0;  y=180;  eski_x=0;  eski_y=180; 
}
//---------------------------------------------------------------------
void draw() { 
  cizim_yap();
    }
//---------------------------------------------------------------------    
void cizim_yap(){    
  for(x=0;x<=720;x=x+1)  
    {
      y= 180 - 90*(sin( x * PI / 180)); // sin() fonksiyonu radyan olarak hesaplama yapıyor
  line(eski_x,eski_y,x,y);              // x*PI/180 -->> ile dereceden radyana dönüşüm yapılıyor.
  eski_x=x;
  eski_y=y;
    }
    eski_x=0;
    eski_y=180;
      x=0;     
}


y= 180 - 90*(sin( x * PI / 180));

programın başında display yüksekliğini 360 pixel verdim. yukarıdaki satırda ise sinyalin 0 noktasını 180. piksele yerleştirdim.

ayrıca tespitime göre displayWeight ile displayHeight komutları sadece setup içinde ekran boyutunu ayarlarken  fullScreen() kullanıldığında sağlıklı çalışıyor.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Fulscreen ve displayWidth Height arasinda baglanti var mi bilmiyorum hocam ama normal processing.de width height olarak da kullanilabiliyor isterseniz bir de oyle deneyin.

Ben hic emulator kullanmadim onunla da ilgili olabilir. Telefonu usb ile baglayip doğrudan telefonda çalıştırabilmek benim için çok iyi çünkü pc kaynakları çok yetersizdi.

@tekosis hocam, sanırım eski xy ile yeni xy arasına gerekli uzunluklarda çizgiler çizdirerek grafik oluşturuyorsunuz. Ekran boyutu ile orantılı olarak çözünürlük artacak şekilde ilerlemekte fayda var. (iki nokta arasındaki mesafe kısalmalı) Ya da line yerine point kullanarak da ilerlenebilir. Tabii bunlar hep işlem gücü gereksinimi olarak geri dönecek şeyler.

Tam olarak ne yapmaya çalışıyorsunuz? Biraz ilgimi çekmedi değil :)

tekosis

doğru diyorsun Cemre. width height olarak kullandığımda düzgün çalışıyor. ayrıca şu an programı java modunda çalıştırdığım için simülasyon zorlanmadan çalışıyor. android modda pc zorlanıyor.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Evet hocam, java modda çalışmak mantıklı. Ancak android'e geçiş yaparken kod karmaşıklaştığında sorun tespiti çok zor olabilir. Dikkat etmek lazım. En azından belirli önemli geliştirmelerde telefonda da deneyerek ilerlemek daha mantıklı olabilir.

tekosis

zaten java modunda düzgün çalışan bir kodu android moda geçirdiğimde "does not exist" hatası veriyor ama henüz onları inceleyecek noktalara gelemedim. çok yavaş ilerleyebiliyorum. düşün kendi kendime bir sinüs çizerken bile zorlandım. basit bir radyan olayını gözden kaçırdım, tecrübe edinmem lazım becerebilirsem bluetooth ara yüzlü bir osilaskop yapmaya çalışıyorum ki bu motivasyonum için bir hedef. becerebilirsem kendi adıma önemli bir basamak atlamış olacağım inşallah. şu an ketai nin bluetooth kütüphanesini inceliyorum.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Hocam naçizane bir tavsiyede bulunmak istiyorum. Youtube'a Daniel Shiffman diye girin, CodingTrain diye bir kanalı var arkadaşın, burada processing'i temelden anlatan bir ders dizisi var, sonra çok çok ileri şeyler yapılan Challenge'lar var. Biraz vakit ayırırsanız videolar bir haftada biter, genel manada deneyim kazanmanıza çok faydası olur. En azından benim için öyle oldu. Neler yapılabileceğini gördükçe ufuk artıyor.

Bir de matematik ile ilgili kütüphaneleri kullanmanız bu noktada faydalı olabilir.


https://www.youtube.com/user/shiffman/playlists?sort=dd&view=50&shelf_id=2

tekosis

desteğin ve tavsiyelerin için teşekkür ederim Cemre. hemen videoları inceleyeceğim.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

EFESU

Arkadaslar affiniza siginarak .... bunu sirayla kurulum ve kullanim olarak anlatacak biri var mi ?
Mitapp ile ugrsyrum bi cok seyide ypmyrum

Cemre.

Alıntı yapılan: EFESU - 26 Ocak 2017, 21:59:45
Arkadaslar affiniza siginarak .... bunu sirayla kurulum ve kullanim olarak anlatacak biri var mi ?
Mitapp ile ugrsyrum bi cok seyide ypmyrum

Hocam ilk mesajda kurulumu anlatmıştım, kullanımı ile ilgili de iki yukarıdaki mesajda bir youtube kanalının adını verdim, en iyi kaynak orası gözüküyor. Tabii processing.org reference ve tutorials sekmeleri de atlanmamalı. Başka bir bilgiye ihtiyaç yok. Takıldığınız noktada yardımcı olmaya çalışırız tabiki. Kolaylıklar...

tekosis

EFESU @Cemre. nin yazdıklarının üzerine söyleyebilecek bir şeylerim olursa emin ol yardımcı olurum. sen hele bir yola çık kervanı sonra hallederiz :)

bluetooth ile uygulama yapmaya başlamak istiyorum, @LukeSkywalker hocamın önerdiği ketai kütüphanesini indirdim ama kullanmayı beceremedim. (bu arada eğitim videolarını izliyorum ama henüz bu kısmı öğrenemedim) bu kütüphaneyi uygulamamızda nasıl kullanacağız?

ketainin example bölümünde bluetooth connection örneği var. burada hem örnek kodlar var hem de BluetoothCursors.pde ve UI.pde var bunları nasıl kullanacağız? ilgili link aşağıdadır;

http://ketai.org/examples/bluetoothcursors/
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Hocam bir hata var herhalde telefondan girdim gerçi ama bluetooth diyip mikrofon örneği paylaşılmış sanki?

Neyse yarin bakıp birşeyler yapmaya çalışırım.
Kolay gelsin.

Ekleme; GitHub repo'sunda Bluetooth örneğini bulabilirsiniz. Oraya bir bakın isterseniz.
Örnek kodlar dediğim gibi hatalı olmuş. AudioInput örneğindeki kodlarla aynı dikkat ederseniz. GitHub'dan örneği bilgisayarınıza indirip bir klasör altında toplayın, çalışacaktır.

oscP5 kütüphanesine de ihtiyaç duyuluyormuş örnekte...

AndroidManifest dosyasını da GitHub ile aynı yapmayı unutmayın..

Eğer küçük gözükürse emülatör veya telefonda, setup içine fullScreen(); satırını ekleyin.
Benim pc'nin bluetooth'u eski olduğundan muhtemelen mouse device olarak eşleştiremiyorum. Örneğin amacı eşleştirip telefonu mouse gibi kullanmak.

tekosis

zaman sıkıntısından dolayı ancak yeniden ilgilenmeye başladım programla. bu zaman aralığında Coşkun Taşdemir'in arduino uygulama isimli kitabını aldım temel processing ve bluetooth kısımlarından bahsetmiş.

processingde bir bug farkettim. dün yazdığım kodu bu gün açtığımda android.bluetooth.* kütüphanesini görmedi. program her ne kadar android modda açılsada sanki java modda gibi çalışıyor. programı android moddan tekrar java moduna sonra tekrar android moduna alınca düzeliyor.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

Cemre.

Hocam nasıl gidiyor? Ben bluetooth aygıtına bağlantı gerçekleştiremedim. Sonra da bıraktım.