Bir önceki Spring yazısında scope türlerine değinmiştik. Şimdi ise kendi scope türümüzü oluşturmaya bakalım. Bunun için öncelikle klasik Java sınıfına
org.springframework.beans.factory.config.Scope
PaylasBir önceki Spring yazısında scope türlerine değinmiştik. Şimdi ise kendi scope türümüzü oluşturmaya bakalım. Bunun için öncelikle klasik Java sınıfına
org.springframework.beans.factory.config.Scope
PaylasGrafiksel çalışmalarda lwjgl aynı zamanda OpenGL kütüphanesinde bulunan bazı çizim metotları ekrana farklı şekilde çıktılar üretir. Bu yazıda bu modlar ve nasıl bir çıktı ürettikleri üzerinde durmaya çalışacağım.
| Çizim Modu | Çizim Mantığı |
| GL_POINTS | Verilen koordinatlara nokta halinde çizimler yapar. |
| GL_LINES | Verilen koordinatları ikişer noktalar halinde gruplayıp bunlara doğru çizer. Yalnız bu doğrular birleşmez. |
| GL_LINE_STRIP | Yukarıdan farklı olarak doğruları birleştirir. |
| GL_LINE_LOOP | Doğruları birleştirdikten sonra son nokta ile ilk noktayı da birleştirir. Böylece kapalı bir çizim oluşur. |
| GL_TRIANGLES | Verilen noktalar üçerli gruplandırırak üçgen çizimleri yapar. |
| GL_TRIANGLE_STRIP | Üçgenleri yine üçerli gruplar. Her gruptan sonraki grupta kendinden önceki gruptaki son 2 nokta kullanılır. Böylece üçgenlerden oluşan çokgen elde edilir. |
| GL_TRIANGLE_FAN | Başlangıç noktası sabit kalacak şekilde tek noktadan üçgen çizimleri yapılır. Her adımda bir nokta değişimi yapılır. |
| GL_QUADS | Noktalar dörderli gruplandırılır ve ayrık dörtgenler elde edilir. |
| GL_QUAD_STRIP | Öncekinden farklı olarak bu dörtgenler birleştirilir. |
| GL_POLYGON | Verilen noktalar arasında konveks yani içbükey çokgen çizimi yapılır. Dikkat edilmesi gereken nokta son nokta ile ondan bir önceki noktanın çizim sıralarının farklı olması. Örnek olarak 4. nokta 3. noktadan önce çizilir. |
Scope türlerine web sayfaları ile ilgilenenler yabancı değillerdir. Bir isteğin ne kadar süre boyunca aktif olacağını belirten ifadelerdir. Spring için de bu tür scope türleri mevcuttur. Bunlara kısaca bakalım.
Singleton: Bu scope türü ile işaretlenen beanden bir örnek oluşturulur ve gerekli referanslar için sadece bu örnek kullanılır.
PaylasBu yazımda Java’ da test işlemlerine değinmeye çalışacağım. Öncellikle test işlemi nedir, bunu bir tarif etmeye çalışalım. Uygulamaların kodlama süreci boyunca birçok hata ile karşı karşıya kaldığımız ve hala da kalabileceğimiz kaçınılmaz bir gerçek. Peki bu hataları bulup düzeltme yöntemleri içerisinde en çok kullanılanları nelerdir diye soracak olursam herhalde genel cevap şu olur: debug, test kodları ve tabiki araya serpiştirilmiş System.out.println() kodları
.
Öncelikle debug ile test arasında farka bakalım. Debug işleminde olaylar adım adım gider ve kullanıcı dönen değerleri kendi kontrol etmek zorundadır. Test işleminde ise kullanıcının kontrol etmesine gerek kalmadan karşılaştırmaları ve doğruluğu yanlışlığı JUnit yapar. Kullanıcıya sadece beklenen ve o anki değerleri verip ekranın altındaki çıktı bölümüne bakmak düşer
. İsterseniz hemen bir örneğe göz atalım.
Bu yazımda oluşturduğum kütüphaneyi de kullanarak örnek bi rotate işlemi yapacağım. Ayrıca bu örnekte önemli bir nokta da ekrana çıktı olarak verilen çemberin merkez noktasının ve yarıçap değerinin isteğe göre kod ile oluşturabilmesidir. Şimdi örnek koda bakalım.
| package com.farukbozan.grafik; |
Bu yazıda basit bir rotate işleminin temel adımlarını göstermeye çalışacağım. Rotate işlemi görüntünün belli bir nokta etrafında yine belli bir açı ile döndürülmesidir. Lwjgl ile bu işlemi basit ve hızlı bir şekilde yapabilirsiniz. Örnek koda geçmeden önce eğer uygulamayı çalıştırmak isterseniz, üzerinde yeni yeni ilerlemeye başladığım JFR kütüphanesini indirip import etmeniz gerekecektir. Şimdi koda göz atalım.
| package com.farukbozan.grafik; |
Artık çalışmalarda kullandığım kodları bir kütüphane altında toplama ihtiyacı duyuyorum. Böylece tekrar tekrar yazmaktan kurtulacağım bazı kodlar var. Bunun için ilk adımları atmaya çalışıyorum. Buradan düzenli şekilde güncellenen dosyalara ulaşabilirsiniz.
PaylasSpring ile çalışırken eğer beanlerin başlangıçta değil de gerektiğinde yani ilk çağrıldığı anda oluşturulmasını istiyorsanız çok basit şekilde bunu uygulayabilirsiniz. Aşağıdaki resimde lazy init özelliğine dikkat edin.
PaylasLwjgl ile çalışırken eğer görüntünün devamlılığını sağlayan bir döngü kullanmazsanız, verdiğiniz komutlara göre çıktı verilir ve sonra uygulama sonlandırılır. Bu konuda bana yardımcı olan Mert Türkal’ a teşekkür ederim. Şimdi aşağıda verdiğim örnek koda bakalım ve bu kod üzerinden birkaç noktaya dikkatinizi çekmek istiyorum.
| package com.farukbozan.grafik; |
LWJGL ile çalışırken java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path hatasını alırsanız tek yapmanız gereken siteden indirdiğiniz dosyalar içerisinde bulunan dll dosyalarını jdk kurulum klasöründeki bin klasörü içerisine kopyalamanız. Daha sonra 3D ortamına dalabilirsiniz
.