Yaklaşık 2 hafta önce izlemiş olduğum BBC Science tarafından hazırlanmış "The Secret Life of Chaos" (Kaos'un Gizli Yaşamı) belgeseli ile daha önceden fikir sahibi olduğum fakat vakit nedeniyle pek üzerine düşünemediğim bir konu olan fraktallar ile ilgili araştırma hevesim tekrar gün yüzüne çıktı. Fraktal, matematikte çoğunlukla kendine benzeme özelliği gösteren karmaşık geometrik şekillerin ortak adıdır. Daha basit tanımıyla, kendi kendini sonsuza kadar tekrar eden şekiller olarakta görebiliriz.
"The Secret Life of Chaos" belgeselinde bahsi geçen fraktal kümelerinden birisi de "Mandelbrot kümesi"dir. Mandelbrot kümesi, Benoit Mandelbrot'un ikinci derece kompleks değişkenli polinomların dinamiklerini açıklamak için geliştirdiği ve incelediği kümedir. Mandelbrot kümesi, karmaşık düzlemin bir fraktal alt kümesidir.
Bugünkü yazımda bahsedeceğim konu ise, Mandelbrot kümesinin, Java programlama dili ve OpenGL kütüphanesi kullanılarak hazırlanmış simülasyonudur. Programı yazarken kullandığım algoritmanın pseudocode hali buradaki linkte mevcuttur.
Programın kullanımı çok basit. Öncelikle Grafik ve Ayarlar Paneli olmak üzere 2 kısımdan oluşan programda, Grafik kısmına farenin mercek(zoom) görevi görebilen tekerlek kısmı ile fraktalın istediğiniz bölgesine yakınlaştırma ya da uzaklaştırma yapabilirsiniz.
There is nothing new under the sun but there are lots of old things we don't know. [Ambrose Bierce]
Showing posts with label Eclipse. Show all posts
Showing posts with label Eclipse. Show all posts
Sunday, September 2, 2012
Tuesday, July 24, 2012
Eclipse İçine Google App Engine SDK Kurulumu
Bugün kü yazımda, Eclipse içine Google'ın yeni bir hizmeti olan "Google App Engine SDK"sini yüklemeyi anlatacağım. Daha önce duymayanlar için hemen kısa bir özet geçeyim. Google App Engine, Google'ın uygulama geliştirme ve barındırma platformudur. Yüksek trafikli altyapıları yönetmek zorunda kalmadan yüksek trafikli web uygulamaları oluşturmanıza olanak sağlar. Google App Engine'de oluşturulan uygulamalarınız hız ve güvenilirlik açısından Google'ın web sitelerinin temelini meydana getiren teknolojinin aynısını kullanır. Siz yalnızca kodu sağlarsınız. Daha önce duymayanlar için, Google Application Engine ile ilgili ileride daha detaylı bir yazı yazmayı planlıyorum. Bu yüzden burada daha detaylı bir şekilde bahsetmeyeceğim. Burada anlatacaklarım "Eclipse Indigo" kullanılarak Windows XP üzerinde denenmiş ve sorunsuz bir şekilde çalışmaktadır. Farklı işletim sistemleri ya da Eclipse sürümlerinde yapılacak kurulumlarda hemen hemen aynı adımlar izlenmektedir. Uygulamayı yüklemek için öncelikle sisteminizde yüklü olan Eclipse versiyonunu bilmeniz gerekli.
Tuesday, June 12, 2012
Eclipse İçine Android SDK ve Emulator Kurulumu
Uzun zamandır Eclipse içinde nasıl Android uygulaması geliştireceğimizle ilgili yazı yazmak istiyordum. Bunu yapmak için öncelikle Android SDK'sini yüklememiz gerekiyor. Burada anlatacaklarım "Eclipse Indigo" kullanılarak Windows XP üzerinde denenmiş ve sorunsuz bir şekilde çalışmaktadır. Farklı işletim sistemleri ya da Eclipse sürümlerinde yapılacak kurulumlarda hemen hemen aynı adımlar izlenmektedir. Öncelikle Android'i bilmeyenler için kısaca tanıtalım. Android, Google ve Open Handset Allience tarafından kodlanmış Linux İşletim Sistemi tabanlı bir mobil cihaz (PDA ve cep telefonları) için geliştirilmiş açık kaynak kodlu bir işletim sistemidir. Bu işletim sistemi üzerinde yapacağınız uygulamalar bugün hemen hemen her akıllı telefonda çalışabilecek durumdadır. Tabii versiyon farklılıkları bazen sıkıntı yaratabiliyor. Çok fazla uzatmadan kuruluma geçmek istiyorum.
Tags:
Android,
Android Emulator,
Android SDK,
Eclipse,
Programlama
Thursday, June 7, 2012
Polynomial Equations - [Proje]
Herkese merhaba! Çok uzun bir aradan sonra tekrar birlikteyiz. Gerek derslerin yoğunluğu, gerekse projelerin fazlalığı nedeniyle bloğa pek fazla yazı yazamamıştım. Ancak önümüzdeki günlerde blogla daha fazla ilgilenmeyi planlıyorum. Bugün sizlere OpenGL üzerinde 2 kişi birlikte geliştirdiğimiz, üniversite 3. sınıfta "SE 313" kodlu, "Bilgisayar Grafiği ve Görsel Programlama" dersinde Java programlama dili, OpenGL ve Glut kütüphanelerini kullanarak yazdığımız 2 ve 3 boyutlu polinom denklemleri çizdiren programı tanıtacağım. Programız kullanıcının girdiği ve seçtiği değerlere göre oluşan polinom denklemin grafiğini ekrana çizdiriyor. Programı yazarken belli limitler koydum mesela 2 ve 3 bilinmeyenli ve maximum 3.dereceden denklemleri çizdirebiliyoruz. Ancak kaynak kodlarda yapacağınız ufak değişiklikler sonucu bu sınırları genişletip, kısabilirsiniz. Şimdi projemi sizlere resimler eşliğinde daha detaylı bir şekilde açıklayacağım.
Sunday, February 26, 2012
OpenGL'de Doğruları Kullanarak Ekrana Harf Yazdırmak
Herkese merhaba, bugünkü yazımda Java üzerinde OpenGL programlamaya giriş yapmayı planlıyorum. Basit bir program yazıp, bu programı çok fazla detaya girmeden açıklayacağım. Programımız OpenGL içinde hazır bulunan "glVertex2f" fonksiyonunu kullanarak ismimizin baş harfini ekrana yazdıracak. Bu programın amacı, hem OpenGL'deki koordinat sistemini kavramak hem de "glVertex2f" fonksiyonunun kullanımını görmek ve anlamak. Yazıyı daha fazla uzatmadan kodumuzu veriyorum.
Saturday, February 25, 2012
Eclipse İçine OpenGL Kurulumu
Herkese merhaba, geçmiş yazılarımdan birinde Visual Studio 2010 içine OpenGL kurulumunu anlatmıştım. Bu yazımda ise Eclipse içine OpenGL kurulumundan bahsedeceğim. Öncelikle sistemimize uygun ve ihtiyacımız olan JOGL kütüphanesini buradan indiriyoruz. Şuan üzerinde çalıştığım sistem 32-bit Windows XP olduğu için ben "jogamp-windows-i586.7z" kütüphanesini indirdim. İndirdiğimiz dosyayı WinRAR programı ile açabilirsiniz. Arşivi açtıktan sonra, "jogamp-windows-i586 > jar" klasörü içindeki "gluegen-rt.jar" ve "jogl.all.jar" dosyalarını Eclipse içindeki projemize ekleyeceğiz. İlk olarak Eclipse'i açıp, menuden "File > New > Java Project" seçeneğini seçip, açılan pencereden projemize isim koyup "Finish" butonuna basacağız.
Friday, November 18, 2011
JAVA [Ders - 5] String Sınıfı ve Metodları
Herkese merhaba. Bir önceki dersimizde Java'da en çok kullanılan sınıf olan "String" sınıfına giriş yapmakla birlikte bir string'i tanımlamak ve görüntülemekle ilgili ufak bir program yazmıştık. Şimdiki dersimizde bu sınıfa ait metodların bazılarını kullanmayı öğreneceğiz. Bu linkten "String" sınıfı ile ilgili daha detaylı bilgiye ulaşablirsiniz. Şimdi gelelim bu sınıfa ait metodları kullanmaya, öncelikle bu sınıfa ait tüm metodların listesine bu linkten ulaşabilirsiniz. Karşınıza çıkan listede yer alan metodların hepsini "String" sınıfından türemiş olan her obje için kullanabilisiniz. Mesela elimizde ad ve soyad diye iki tane string olsun ve bizde bu iki stringi birleştirelim. Kodumuz şu şekilde olacak;
Saturday, September 3, 2011
JAVA [Ders - 4] String Sınıfı
Öncelikle merhaba, çok uzun süredir Blogspot'a giriş yapamadım. Gerek stajlar gerekse almış olduğum bazı projeler sonunda yazı yazmayı biraz aksattım. Bu yüzden özür dileyerek bir sonraki Java dersimize geçiyoruz. Şimdi göreceğimiz ders Java'da en çok kullanılan sınıf olan String sınıfı. String sınıfı java.lang kütüphanesi içinde yer alan ve metinlerle ilgili aklımaza gelebilecek hemen her türlü işlemi yapabildiğimiz bir sınıftır. Sözü fazla uzatmadan hemen kod kısmına geçelim aşağıdaki kod Java'da String sınıfını kullanmak ve görüntülemekle ilgilidir. Burada dikkat etmemiz gereken şey "String" ifadesinin diğer değişkenlere(byte, int, float, char) nazaran büyük harfle başlamasıdır.
Thursday, February 17, 2011
JAVA [Ders - 3] - Veri Tipleri
Herkese merhaba! Geçtiğimiz derslerde Java'da konsol ekranına nasıl çıktı yazdıracağımızı öğrenmiştik. Şayet bu dersle ilgili hala ufak problemler yaşıyorsanız bir önceki yazımı tekrar okumanız ve biraz pratik yapmanız sizin için faydalı olacaktır. Bugünkü dersimizde ise Java'daki veri tiplerine değinip konuyla ilgili ufak örnekler yazacağız. Java'da 8 tane primitive (asıl) veri tipi vardır.
byte: Hafızada 8-bit yer kaplayan -27 veya +27-1 arasında bir değer alan veri tipidir.
short: Hafızada 16-bit yer kaplayan -215 veya +215-1 arasında bir değer alan veri tipidir.
int: Hafızada 32-bit yer kaplayan -231 veya +231-1 arasında bir değer alan veri tipidir.
long: Hafızada 64-bit yer kaplayan -263 veya +263-1 arasında bir değer alan veri tipidir.
float: Hafızada 32-bit yer kaplayan ve kesirli bir sayı değeri alan veri tipidir.
double: Hafızada 64-bit yer kaplayan ve kesirli bir sayı değeri alan veri tipidir.
char: Hafızada 16-bit yer kaplayan 0 veya +216-1 arasında bir değer alan veri tipidir.
boolean: Hafızada 1-bit yer kaplayan true veya false değerini alan bir veri tipidir.
byte: Hafızada 8-bit yer kaplayan -27 veya +27-1 arasında bir değer alan veri tipidir.
short: Hafızada 16-bit yer kaplayan -215 veya +215-1 arasında bir değer alan veri tipidir.
int: Hafızada 32-bit yer kaplayan -231 veya +231-1 arasında bir değer alan veri tipidir.
long: Hafızada 64-bit yer kaplayan -263 veya +263-1 arasında bir değer alan veri tipidir.
float: Hafızada 32-bit yer kaplayan ve kesirli bir sayı değeri alan veri tipidir.
double: Hafızada 64-bit yer kaplayan ve kesirli bir sayı değeri alan veri tipidir.
char: Hafızada 16-bit yer kaplayan 0 veya +216-1 arasında bir değer alan veri tipidir.
boolean: Hafızada 1-bit yer kaplayan true veya false değerini alan bir veri tipidir.
Monday, February 14, 2011
JAVA [Ders - 2] - Hello World!
İlk dersin devamı niteğinde olacak ikinci derse hoşgeldiniz. Öncelikle ilk derste yaptıklarımzdan biraz bahsetmek istiyorum. İlk derste yapılanlar Java programlama dilinde kod yazıp derlemek için gerekli olan minimum yazılımları yüklemek ve ekrana "Hello World!" yazdıran bir konsol uygulamasını geliştirip bunu derlemekten ibaretti. Bu derste öğrendiğimiz en önemli şeylerden birisi kodumuzda varolan class adının dosya adıyla aynı olması gerektiğidir. Şimdi sıra geldi aşağıdaki kodumuzu açıklamaya:
Sunday, February 13, 2011
JAVA [Ders - 1] - Hello World!
Üniversitedeki ilk yılımı bitirene kadar neden Java değil de daha düşük seviye olan "C" programlama dilini öğrettiklerini hep kendime sordum. Ancak daha sonra farkettim ki bize öğrettikleri ya da öğretmeyi amaçladıkları şey bir programlama dilinden çok daha öte, kişinin bireysel olarak bir şeyleri öğrenme kapasitesini ve hevesini artırmaktı. (en azından benim üzerimde böyle bir etki bıraktı) Bende bu şekilde uzun bir süredir kendi çabalarım ve internetteki kaynakların da sayesinde "Java" öğrenmeye başladım. Java'yı tercih etmemde birkaç neden etkili oldu. Bu nedenlerden ilki Java'nın nesne yönelimli bir programlama dili olmasıydı. (ileride bu konuya daha ayrıntılı bir biçimde değineceğim) İkinci neden Java'nın açık kaynak ve çapraz platform bir programlama dili olmasıydı. Bunun yanı sıra C programlama dilinde varolan kimi çarpıklıklar ve zorlukların üstesinden gelinmiş çok daha kolay, rahat ve güvenli bir dil vardı karşımda. Bu ve buna benzer daha bir çok şeyle birlikte Java öğrenmeye başladım. Ve öğrendiklerimi parça parça blogumda yayınlama kararı aldım. Bugünkü ilk ders olarak da konsol ekranına (henüz grafiksel kullanıcı arayüzüne sahip programlama için çok erken) "Hello World!" yazdıracağız.
Subscribe to:
Posts (Atom)