Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar.



Benzer belgeler
Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

CENG 217 Object Oriented Design. Doç. Dr. Halûk Gümüşkaya /

APPLET KAVRAMI ve GRAFİKSEL ÇİZİM UYGULAMLARI

BİL-141 Bilgisayar Programlama I (Java)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Karşılaştırma İşlemleri ve Koşullu İfadeler

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Erişim konusunda iki taraf vardır:

Programlama Dillerinde Kullanılan Veri Tipleri

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Yrd. Doç. Dr. Caner ÖZCAN

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

DİŞLİ ÇARK ÇİZİMİ: 1. Adım Uzunlukları diş üstü dairesi çapından biraz büyük olacak şekilde bir yatay ve bir düşey çizgi çizilir.

JAVADA DİZİ İŞLEMLERİ

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

BÖLÜM ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME

Java Programlamada Paket Yapısı Ve Import

Burak Kıymaz JAVA FX

İÇİNDEKİLER VII İÇİNDEKİLER

2 TEMEL ÇİZİM KOMUTLARI

GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ

Ölçek Kavramı Görünüşler AutoCAD ile çizime hazırlık Komut Anlatımı Komut Satırı Koordinat Girişi (Line)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

GÖRÜNÜŞLER. Bir nesneyi daha iyi resmedebilmek için Görünüşlerden yararlanılır.

Skecher (Çizim) Komutları

Spring Framework Eğitimi

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Nesneye Yönelik Programlama-JAVA (S flar), Ders sorumlusu Yrd.Doç.Dr.Hilmi KU ÇU

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

YZM 2105 Nesneye Yönelik Programlama

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Android Ders Notları

BİLGİSAYAR DESTEKLİ TASARIM (TEKNİK RESİM-II) Yrd.Doç.Dr. Muhammed Arslan OMAR

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BİLGİSAYAR DESTEKLİ TASARIM HAFTA 3-SOLIDWORKS İLE SKETCH

CBS Arc/Info Kavramları

C++ Dersi: Nesne Tabanlı Programlama

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

Sunum İçeriği. Programlamaya Giriş

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

HSancak Nesne Tabanlı Programlama I Ders Notları

MEKANİZMA TEKNİĞİ (7. Hafta)

JavaFX Temelleri (1)

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Dr. Fatih AY Tel: fatihay@fatihay.net

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

SOLİDWORKS SOLİDWORKS E GİRİŞ 01 İSMAİL KELEN

SOLID EDGE PROGRAMINDA SKETCH MENÜSÜ Çizim Alanı Temel Çizimleri Çizgileri İlişkilendirme Çizgi Referansı Yakalama Ölçülendirme 3 Ersin Toptaş Mekatro

Nesne Yönelimli Programlama

Frame Çerçeveler Web sayfasını birden fazla html sayfa ile oluşturmaya imkan tanır. html örnekler\örnek17.html. örnek17.html

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

Mantıksal (Logic) Operatörler

BİLGİSAYAR DESTEKLİ TASARIM (TEKNİK RESİM-II) Yrd. Doç. Dr. Muhammed Arslan OMAR

HMI (insan makine ara yüzü) EĞİTİM NOTLARI

Java Class Yapısında Finalize Metotunun Kullanımı

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

ÜÇ BOYUTLU ÇİZİME GİRİŞ YÜZEY VE KATILARIN BİRLEŞTİRİLMESİ,ÇIKARILMASI,ARA KESİTLERİNİN ALINMASI:

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

LIGHTWORKS İLE GÖRSELLEŞTİRME

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL. Deney 2

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

OPERATÖRLER Alıştırmalar

7. HAFTA ENM 108 BİLGİSAYAR DESTEKLİ TEKNİK RESİM. Yrd.Doç.Dr. İnan KESKİN.

Operator Aşırı Yükleme (Operator OverLoading)

Java da İşleçler, Ders #3 (4 Kasım 2009)

7. HAFTA. Erişim Belirleyiciler

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Part-Helical Sweep/ Yrd. Doç. Dr. Mehmet FIRAT- Yrd. Doç. Dr. Murat ÖZSOY

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Transkript:

JAVA2D

Java2D API Geniş çaplı 2D geometrik şekillerin çizdirilmesini Birleşik (Composite) nesnelerin oluşturmasını Renk yönetimini kolaylaştıracak genişletilmiş renk desteği özelliklerini Kompleks dokümanlar için çıktı özelliklerini sağlar.

Java2D API Java2D API Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar. Java2D API resimleri yükleme ve üzerlerinde işlem yapılmasına olanak tanır. AWT ile entegredir.

Java da Painting AWT de boyama işlemleri paint(graphics g) metodu içinde gerçekleştirilir. Bu metod java.awt.canvas sınıfının bir metodudur. Swing de ise bu işlemler java.swing.jcomponent sınıfının bir metodu olan paintcomponent(graphics g) metodu içinde gerçekleştirilir. Graphics2D nesneleri için gerekli tüm işlemler paintcomponent(graphics g) metodu içinde gerçekleştirilmelidir.

Şekillerin Çizimi AWT de şekiller drawxxx veya fillxxx gibi komutlar çalıştırılarak gerçekleştirilirken Java2D de öncelikle nesnenin kendisi oluşturulur daha sonra Graphics2D nesnesinin draw veya fill komutlarına bu nesne parametre olarak geçirilerek kullanılır. AWT public void paint(graphics g) { g.setcolor( ); // Draw a shape g.drawoval(...); } Java2D public void paintcomponent(graphics g) { super.paintcomponent(g); Graphics2D g2d = (Graphics2D)g; Ellipse2D.Double circle = new Ellipse2D.double( ); g2d.fill(circle);... }

Örnek-1 public void paintcomponent(graphics g) { Graphics2D g2d = (Graphics2D)g; Ellipse2D.Double circle = new Ellipse2D.Double(15, 15, 90, 90); Rectangle2D.Double square = new Rectangle2D.Double(10, 10, 100, 100); } g2d.fill(circle); g2d.draw(square);

Java2D de Renkler Renkler java.awt paketi içinde bulunur. Bir çok constructor a sahiptir; Color(float/int r, float/int g, float/int b) Color(float/int r, float/int g, float/int b, float/int a) Color(int rgb) (Mavi ilk byte, Yeşil 2. ve Kırmızı 3.byte) JFC masaüstünüzle uygun olarak renkleri seçmenizi sağlar. Örneğin arkaplan rengi olarak genel pencere rengini seçmek istiyorsanız aşağıdaki yeterli olacaktır; setbackground(uimanager.getcolor( window )); Diğer bazı sistem rengi anahtar kelimeleri ; desktop, windowtext,menu,text,info, scrollbar,

Örnek-2 public void paintcomponent(graphics g) { super.paintcomponent(g); Graphics2D g2d = (Graphics2D)g; Ellipse2D.Double circle = new Ellipse2D.Double(15, 15, 90, 90); Rectangle2D.Double square = new Rectangle2D.Double(10, 10, 100, 100); Color c = new Color(11,22,72); setbackground(c); g2d.setcolor(color.red); g2d.fill(circle); g2d.setcolor(uimanager.getcolor("info")); g2d.draw(square); }

java.awt.geom package içindeki sınıflar Point2D Arc2D Area CubicCurve2D Dimension2D Ellipse2D GeneralPath

Noktalar Bir nokta ile pixel farklı şeylerdir. Point2D abstract bir sınıf olup içsel sınıflar içerir. Point2D.Float, Point2D.Double gibi Bu sınıf ayrıca iki nokta arasındaki uzaklığı bulmak için fonksiyonlar sağlar; public double distance (double PX, double PY) public double distance (Point2D pt)

Şekiller Winding Kuralı Karmaşık bir şekil çizdiniz. Fakat içini nasıl doldurabiliriz? Winding kuralı fill() komutu çalıştırıldığında çizilen şeklin hangi parçasının içsel hangisinin dışsal olduğunu belirler. Çift-Tek kuralı Tüm şekil boyunca hat çizilir. Her yüzey çakışmasında counter bir arttırılır Eğer counter çift ise dışarıda tek ise içeridedir. Non-Zero Kuralı Tüm şekil boyunca hat çizilir. Eğer hat soldan sağa doğru uzanan bir hat ile çalışırsa counter arttırılır aksi halde azaltılır. 0 olmayan bölgeler içeride kabul edilir 1 0 Çift-Tek 7 6 4 5 3 2 Non-zero 0-1 1 0-1 -2

Şekiller GeneralPath Parça parça bir path oluşturmayı sağlar Default olarak non-zero winding kuralını kullanır. Bu sınıfın constructor ları public GeneralPath(int windingrule) public GeneralPath(int windingrule, int InitialCapacity) Metodları moveto(float x, float y) lineto(float x, float y) quadto(float controlx1, float controly1, float endx, float endy) cubicto(float controlx1, float controly1, float controlx2, float controly2, float endx, float endy) append(shape s, boolean connect) closepath()

Örnek 3 public class GeneralPaths2 extends JPanel { private GradientPaint gpaint = new GradientPaint(50, 50, Color.blue, 175, 175, Color.green, true); int x = 10; int y = 10; int rectwidth = 200; int rectheight = 200; int x1points[] = {x, x+rectwidth, x, x+rectwidth}; int y1points[] = {y, y+rectheight, y+rectheight, y}; GeneralPath polygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, x1points.length); public GeneralPaths2() { super(); setlayout(null); polygon.moveto(x1points[0], y1points[0]); for (int index = 1; index < x1points.length; index++) polygon.lineto(x1points[index], y1points[index]); polygon.closepath(); } public void paintcomponent(graphics g) { super.paintcomponent(g); Graphics2D g2d = (Graphics2D)g; g2d.setpaint(gpaint); g2d.fill(polygon); }.}

Çizgiler ve Eğriler Line2D Bir çizgi double,float veya Point2D parametre alabilir. QuadCurve2D Bir çizgi double,float veya Point2D parametre alabilir. Tek kontrol noktası vardır. CubicCurve2D Bir çizgi double,float veya Point2D parametre alabilir. İki kontrol noktası vardır.

Şekiller Rectangle2D, RoundRectangle2D, Ellipse2D, Arc2D Arc2D için 3 closure seçeneği vardır; CHORT, PIE ve OPEN public void paintcomponent(graphics g) { super.paintcomponent(g); Graphics2D g2d = (Graphics2D)g; g2d.setcolor(color.blue); RoundRectangle2D.Double rrect = new RoundRectangle2D.Double(30,30,100,100,30,30); Rectangle2D.Double rect = new Rectangle2D.Double(30,150,100,100); Ellipse2D.Double ellipse = new Ellipse2D.Double(150,30,80,100); Arc2D.Double arc = new Arc2D.Double(150,150,100,100,0,120,Arc2D.PIE); g2d.fill(rrect); g2d.fill(rect); g2d.fill(ellipse); g2d.fill(arc); }

Constractive Area Geometry Basit şekilleri özel tarzlarda birleştirerek kompleks şekiller oluşturmayı sağlar. Toplama, çıkarma, kesiştirme, XOR Bir Area oluşturulur ve bunun üstünde tüm işlemler yapılır Orjinal Sekiller Toplama Kesiştirme Çıkarma Xor