10 Ocak
2012Gerçekten kullanılması gereken güzel bir pascal editoru şiddetle tavsiye ediyorum.
Dili : Rusça
http://pascalabc.net/skrinshoti-obschiy-vid
http://pascalabc.net/ssyilki-dlya-skachivaniya.html
10 Ocak
2012Gerçekten kullanılması gereken güzel bir pascal editoru şiddetle tavsiye ediyorum.
Dili : Rusça
http://pascalabc.net/skrinshoti-obschiy-vid
http://pascalabc.net/ssyilki-dlya-skachivaniya.html
09 Kasım
2011OpenGL nedir ve Kullanıcı – Yazılımcı gözünden inceleyelim
Türkçe adıyla Açık Grafik Kütüphanesi ( Open Graphic Library ) donanımların iki boyutlu ve üç boyutlu grafikleri ekrana çizmemize yarayan grafik uygulamasıdır. İlk taslağı 1992 yılında SGI firması ile oluşturulmuştur.Daha öncesinde benzer ürün olarak SGI Firması IrısGL’i üretmişti fakat bu API matris işlemlerinde çok hızlı olmasına karşın işletim sistemleri değiştiğinde sorunlar çıkarabiliyordu ve çok taşınabilir değildi.Bu sorunları ortadan kaldırarak taşınabilir OpenGL üretildi.
Özellikleriyle standart haline gelen bu arabirim Windows, Linux, MacOS gibi bir çok işletim sistemince desteklenir.Ayrıca oyun konsollarından bazılarının (Playstation 3 gibi ) OpenGL desteği mevcuttur.
Donanım üreticileri her ekran kartında bu desteği sunmaktadır.Bu desteği SGI firmasına belli bir ücret ödeyerek sağlamaktadır, ödeme karşılığında SGI firması güncel sürücüleri sağlayarak ekran kartına performans testleri yapmaktadır.
İhtiyaç listesinin başında gelen bu arabirimin kar amacı güdülmeyen bu yapılanmada bakımı ve gelişimi ise Khronos Group tarafından yürütülmektedir.
OpenGL desteği sunan oyunlardan örnek ;
America’s Army , DreamChess, Max Payne, Quake II, III ve IV , Second Life … Oyun piyasasında göz ardı edilemeyecek miktarda ürünleri mevcuttur.
OpenGL desteği sunan bazı yazılımlara örnek :
Tasarımcıların vazgeçilmezlerinden biri Photoshop gibi yazılımlarda OpenGL desteği mevcuttur bunun yanı sıra popüler yazılımlar arasında olan Google Earthprogramınında OpenGL desteği sağlanmıştır.
Platformlardan bağımsız çalışan OpenGL, C diline benzetilebilir.Komutları Windows sistemlerde ve Linux sistemlerde de aynı görevi yerine getirmektedir.Komutları içeren, çalışma sırasında gereksinim duyacağı runtime-library(çalışma anı kütüphanesi) platformlar tarafından hazır olarak entegre edilerek bize sunulmaktadır.Bu sayede uygulamanın çalışması için gereksinimler duyulmamaktadır.
Bir çok programlama dili de OpenGL’i kullanabiliriz. OpenGL kütüphanelerini kullanarak C, C++, C# (SharpGL adı verilen sınıflar sayesinde), Fortran, Python,Perl ve Java dillerinde destek mevcuttur.
Popülerliğini her ne kadar korusa da, Microsoft ürünü olan DirectX yolunu kesme peşindedir.Bir nevi kendi ürününü öne çıkartan Microsoft bu sayede oyun, yazılım üreticilerinin platform tercihlerini windows’tan yana kullanmasını sağlamaktadır.
Microsoft’un bu çabaları her ne kadar devam etsede , OpenGL’in gücünü yeni sürümleriyle (10,11 versiyonları ) ile yakalamıştır.Lakin bu versiyonları pazarda hala göz ardı edilemeyen XP kullanıcıları faydalanamadığından OpenGL gücünü birkez daha kanıtlıyor.
Yazılımcılar tarafından API kullanımı için hiçbir ücret ödenmemesi avantajlarındandır.
Kullanıcı için OpenGL ne ifade eder?
Sıklıkla kullandığımız tipik programlar ( word vs. ) ekrana yazdırılacak iş için GDI ( Graphic Design Interface – grafik tasarım arayüzü ) kullanırlar.Bu API düşük seviyelidir, ekran kartıyla bağlantı kurarak ekrana şeklin çizilmesini sağlar.
Örnek olarak ekrana bir doğru çizdirmek istediğimizde, uygulamanın programlama dili GDI API’leri çağırır ve ekran kartını yönetmesi sağlanır.GDI Ekran kartını yöneterek ekrana doğrunun çizilmesini sağlar.( Ekran kartı sürücülerinin kurulması bu sebepledir ki, API’lerin ekran kartını yönetimi düzenlenir. )
OpenGL’de boyanma işlemi gibi komutlar’da; Ekran kartı OpenGL’i destekliyorsa ( günümüzde bütün kartlar destekliyor ) GDI arabirimini kullanmaz (Ekran kartı bu komutları algılayabildiğinden ) direk ekran kartına iletir.Bu da OpenGL’e ciddi bir hız kazancı sağlamaktadır.
OpenGL’de basit modellemeler yapılır ;
Örneğin ekrana üçgen çizimi :
glBegin(GL_TRIANGLE);
glVertex2i(0,0);
glVertex2i(-100,0);
glVertex2i(-100,100);
glEnd();
gibi basit bir kod ile yapılmaktadır.Kod içerisinde, üç kenardan ibaret olduğu ve kenar noktalarının ekran koordinatları verilerek hazırlanmıştır.( glVertexsatırı ile koordinatlar verilmiştir )
3 Boyutlu grafiklerde ve mühendislik yazılımlarında OpenGL tercih edilir. diğer ekranlara göre ( directx kullananlar ) modellemeler daha basit olarak yapılmaktadır.
Microsoft bir yandan çok başarılı denilecek bir geliştirme sunmasada, pazarın akışını kendi yönüne çevirebilmeyi Reklamları ve Stratejisiyle başardı gözüküyor.
Bunu ise OpenGL’in eksikliği olarak değerlendirmek büyük bir hata olur.
30 Ekim
2011“Silverligth’ta Ekran Geçişleri” konusuna göz atacağız. Bunun için öncelikle yine VS 2010 programımızı açıp “SilverlightScreenTransitions” adında yeni bir Silverlight uygulaması oluşturuyoruz.

Şimdi geçişler için bir tane daha XAML dosyayı oluşturmamız gerekiyor. Resimde olduğu gibi proje adı üzerinde sağ tıklayarak Add > New item > Silverlight User Control seçneğini seçip aında Page2.xaml vererek yeni bir XAML dosyayı oluşturuyoruz.


Şimdi varsayılan “Page.xaml” dosyasına geri dönelim. Yeni sayfamızda gezinti yapabilmemiz için bize izinleri sağlayacak olan, herhangi bir link, bir bağlantı(buton) veya gezinmeyi sağlayacak herhangi bir şeye ihtiyacımız var. Bunun için aşağıdaki gibi kodlarımızı yazalım.
Controlümüzün tam ortasına kırmızı bir dikdörtgen yerleştiriyoruz. Daha sonra ise, sayfayı düzenlemeye ihtiyacımız olacak. Amacımız sadece “Tebrikler!” metnini sayfaya koymak. Bu nedenle Page2.xaml dosyamıza aşağıdaki gibi kodlarımızı giriyoruz.

Bu noktada, 2 XAML dosyamız mevcuttur, biri diktörtgen(olay işleyicisi ile birlikte), diğeri ise sadece “TextBlock” tur. Burada dikdörtgene tıkladığımız zaman, başka bir XAML dosyasına gitmek istiyoruz. Bunu nasıl yapabilirsiniz (VB.NET’te, sadece noktalı virgül gözardı edilebilir). Bu satıra sadece page.xaml.cs(veya .vb) işleyici kodunu ekleriz.
this.Content = new Page2();
Şimdi başka bir ekranı nasıl alacağımızı biliyoruz, o zaman geçişler hakkında daha detaylı bilgi verebiliriz. İlk geçişi tanımlayarak başlayalım:
Hareketli bir animasyon dosyasından başka bir XAML dosyasına aktarma olayı. Daha iyi anlayabilmek için powerpoint de slaytlar arasındaki geçişleri düşünün. Ekranı karartmalar, aydınlatmalar vs. Şimdi buna bir örnek oluşturalım.
Geçişler için İçe ve Dışa Doğru Uygulanan Ekran Karartma İşlemi
İkinci slaytımıza geçerken bir karartma işlemi oluşturacağız. Bunun için bir XAML dosyasında animasyon oluşturacağız. Page.xaml’de dışa yönelik(fade out), Page2.xaml’de ise içe yönelik(fade in) karartma gerçekleştirecek animasyonları oluşturacağız. Her ikisi arasında yazmış olduğumuz kodu kullanarak, bir sonra ki dosyaya geçmemiz gerekecek.
Page.xaml Anismasyonu
Buradaki tek fark benim ortaya koyduğum yeni Storyboard’dır. Sadece bir saniye içinde %100’den %0’a kadar LayoutRoot ile bir donukluk olur.

Page2.xaml Animasyonu
Bu dosyada tam tersi olarak animasyon yapıyoruz, fakat düşünmemiz gereken başka bir şey daha var. Animasyonumuz %0’dan %100’e kadar bir donukluk almasına rağmen, LayoutRoot öğesinin donukluk oranın %0 olduğuna kesinlikle emin olmamız gerekmektedir. Bu olmadan XAML dosyası %100’lük bir oranla yüklenecektir. Daha sonra bu 0’dan 100’e kadar değerler oranında kararmaya başlayacaktır. Tam olarak istenen etki bu değildir. LayoutRoot öğesinde belirtilmiş donuklukları göreceksiniz.

Animasyon Olay İşleyici
Bunun için kodun gerisini açık bir şekilde değiştirmek gerekiyor. Tıklama yaptığımız zaman bir animasyona çağrışım yapacağız. Fakat bir animasyonun nasıl tamamlanacağını biliyor musunuz? Teknik olarak ifade etmek gerekirse; bir tane timer oluşturup bir saniye bekledikten sonra ikinci XAML dosyasını çağırırız. Fakat bu karışık ve herhangi bir sıralamaya bağlı olarak gerçekleşmeyecektir. Neyse ki bizim olay işleyicilerimiz animasyonlara ekleme yapabiliyor. Yani bizim fade out animasyonumuzun tamamlandığına dair “İşlem Tamamlandı!” şeklinde bilgi veren olay işleyicisi oluşturabiliriz. Animasyon tamamlandıktan hemen sonra bu olay işleyicisi çağrılmış olacaktır. Aşağıdaki ekran görüntüsünden kodları inceleyebilirsiniz.

Bir sonraki XAML dosyasına geçiş daha basittir başlangıç yönteminde, oluşturduklarımıza fadeOut animasyonu diyoruz.
