ana sayfa : araştırma : java uygulamaları : grafik [ 8 / 12 ] |
|
GERİ | |
8
GRAFİK
Javanın grafik yetenekleri
ile çizgi çizmek, şekil oluşturmak , ekranda karakter tanımlamka son
derece kolaydır. Bütün bu işlemler için gerekli olan metodlar Graphics
sınıfı içerisinde tanımlanmışlardır. Bu nedenle appletr içerisinde
bir şey çizmek istenildiğinde Graphics sınıfına ait bir örnek tanımlamak
gerekmez. Applet içindeki paint()
metodu içerisindeki gerekli nesneleri verilmiştir. Graphics sınıfı Java.awt
paketinin birparçasıdır. Bu nedenlşe applet boyama yapacaksa Java
dosyasının başında bu sınıfa koda dahil edilmelidir. 8.1
Grafik Kordinat Sistemi
Ekrana bir nesneyi çizdirmek
için Graphics sınıfında mevcut bir metod çağırılmalıdır. Bütün
metodlar içinde başlangıç ve bitiş noktaları veya nesnenin köşeleri
için argümanlar bulunur. Argümanlara koordinat sistemine uygun değer
girilmelidir. Java koordinat sisteminin
orjini ekranın sol üst köşesidir. Pozitif x değerleri sağa doğru, y
değerleri ise aşağıya doğrudur. Bütün pixel değerleri tam sayıdır. 8.2
Çizme ve Doldurma
Graphics sınıfının çizim için hazır bazı
temel tipleri vardır. Örnek olarak çizgi, dikdörtgen, poligon, oval ve
yay verilebilir. 8.3
Çizgi
Düz çizgi çizmek için drawline() kullanılır.
Drwline dört argüman ister. Bunlar sırasıyla başlangıç ve bitiş
noktalarının x ve y koordinatlarıdır. 8.4
Dikdörtgenler
Java grafik temelleri içe
üç değişik dikdörtgen çizilebilir.
Her bir dikdörtgen için
iki değişik metoddan birisi seçilebilir. Bunlardan ilki dikdörtgen çerçeve
çizer; diğeri ise dörtgenin içini boyar. (Tanyeri,1997) Düzlemsel dörtgen çizmek
için ya drawRect() ya da fillRect() metodlarından birisi seçilebilir. Her
ikisinde de dört argüman bulunur. Bunlardan dörtgenin sol üst köşesinin
x ve y koordinatları ile çizilecek dikdörtgenin uzunluğu ve yüksekliğidir. Köşeleri yuvarlatılmış
dörtgen çizmek içinse drawRoundRect() veya fillRoundRect() metodlarından
birisi kullanılabilir. Bunların düzlemsel dörtgen çizmek için
olanlardan farkı fazladan iki argüman gerektirmesidir. Fazladan olan argümanlar
köşedeki yuvarlatılan kısmın uzunluk ve yüksekliğini verirler. Bu argümanlar
düzlemsel dörtgen için olan argümanları
takip edip sırasıyla yatay ve düşey olarak ne kadarlık bir kısmın
yuvarlatılacağını gösterirler. Her iki değer de birbirine eşitse köşelerdeki
yuvarlatma daire şeklinde olur. (Tanyeri,1997) Üç boyutlu dörtgen çiziminde
ise gölgelendirme yapılarak derinlik sağlanır. Gölgelendirmeye bağlı
olarak applet yüzeyinde yukarıda veya aşağıda olmaları sağlanır. Bu
dikdörtgenlerde dört argüman aynen düzlemsel dörtgenlerde olduğu gibi
dikdörtgeni tanımlamak için bir argümanda dikdörtgenin applet yüzeyinden
yukarıda mı, yoksa aşağıda mı olduğunu belirtmek için kullanılır. Beşinci argüman bool
tipinde bir argüman olup true veya false değerini alır. True olduğunda
dikdörtgen applet yüzeyinde yukarıda false olduğunda ise aşağıda görünür.
(Tanyeri,1997) 8.5
Poligonlar
Poligonlar her hangi sayıda
köşeye sahip olabilen şekillerdir. Poligon çizmek için köşelerin x ve
y koordinatları ile bu köşeleri birbirine bağlayan çizgileri çizmek
gerekir. Dikdörtgenlerde olduğu gibi poligon çizmek veya içini doldurmak
mümkündür. Koordinatlar belirtilirken iki değişik yol izlenebilir.
Bunlardan ilki x ve y değerlerini içeren dizi ikincisi ise poligon sınıfına
ait örnek kullanmaktır. İlk yol kullanıldığında darawPolygon() ve
fillPolygon() fonksiyonları üçer argüman içerirler. (Tanyeri,1997)
x ve y dizilerinde aynı
sayıda eleman bulunmalıdır. Java poligonu otomatik
olarak kapatmaz. Kapalı bir eğri elde edilemek istenirse dizilerin sonuna
x ve y nin başlangıçtaki
koordinatları tekrar yazılmalı veya draw yerine fill kullanılmalıdır. İkinci yol ise poligon
nesnesini kullanmaktır. Bu yöntem daha önce oluşturulmuş bir poligonda
değişiklik yapmak için uygundur. Poligon nesnesi oluşturmak için ya boş
bir poligon tanımlanır ya da girildikten sonra tanımlanır. Polygon poly=new poligon(); Yukarıdaki komut boş bir
poligon oluşturur daha sonra Poly.addpoint(20,35); Gibi bir komut kullanılarak
istenilen koordinatlara nokta konur. 8.6
Ovaller
Ovaller elips veya daire çizmek
için kullanılır. Dikdörtgen çizimine benzer şekilde başlangıç
noktasının x ve y koordinatları ile ovalin geçeceği bölgenin uzunluk
ve genişliği argüman olarak girilir. Kullanılan metodlar ise draw oval()
ve filloval() dır. (Tanyeri,1997) 8.7
Yaylar
Yay ovalin bir parçasıdır.
Bu nedenle çizerken de benzer şekilde düşünmek faydalı olacaktır.
Drawarc() metodunda altı adet argüman bulunmalıdır.
Fillarc() metodu kullanıldığında
ise yay adeta bir pasta dilimi gibi çizilir. Daha öncekilerden farklı
olan nokta ise burada başlangıç ve bitiş noktalarının birbiriyle değil
oluşturdukları dairenin merkezi ile bağlanırlar. (Tanyeri,1997) Yay çiziminde anlaşılması
gereken en önemli nokta yayında tıpkı oval gibi formüle edildiği, başlangıç
ve bitiş noktaları ile uzunluk ve genişliğinde yay’a değil ovale ait
olduklarıdır. Yapılan ise bu şekilde formüle edilen ovalden sadece
belli bir kısmının çizilerek yayın elde edilmesidir. Eliptik yay çizmek
nispeten daha zordur. Çünkü dairesel yay da açılar gayet kolay görülebilirken
burada açıların saptanması dairedeki kadar kolay değildir. Fakat her şey
tamamen aynıdır. Dairesel ve eliptik yaylar ve ovaller arasındaki tek
fark eliptik yay da uzunluk ve genişliğin farklı değerler almasıdır. Java’da yay çizmeyi şu
adımlarla özetleyebiliriz: (Tanyeri,1997)
8.8
Kopyalama ve Silme
Programcı çizdiği şekillerden
bazılarını veya tamamını silmek istediğinde Graphics sınıfının
ilgili metotlarını kullanabilir. Benzer şekilde ekranın bir kısmını
başka bir yere taşımak içinde metotlar vardır. CopyArea() metodu ekrandaki
dikdörtgen bir bölgeyi yine ekranda başka bir bölgeye kopyalar. Metodun
uygulanması için altı argüman gereklidir. Kopyalanacak bölgenin sol üst
köşesinin koordinatları , uzunluk ve genişliği ile kopyalanacak alana
olan uzaklığın x ve y bileşenleri bilinmelidir. (Tanyeri,1997) g.copyArea(0,0,100,100,100,0); yukarıdaki komut 0/0
koordinatlarından başlayan 100 birim uzunluk ve genişlikteki kareyi 100
birim sağına kopyalar. Dikdörtgen bir bölgeyi silmek için clearRect()
metodu kullanılır. Bu metod aynen drawRect() metodunda olduğu gibi dört
argüman gerektirir. Metodun yaptığı seçilen bölgeyi ekranın o anki
rengiyle boyamaktır. Silinmesi gereken bölgenin büyüklüğünü tespit
etmek için size() kullanılır. (Tanyeri,1997) g.clearRecht(0,0,size().width,size().height);
|