Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.

Slides:



Advertisements
Benzer bir sunumlar
5 EKSENLİ ROBOT KOLUNUN YÖRÜNGE PLANLAMASI ve DENEYSEL UYGULAMA
Advertisements

Tuğba DEMİREL
WINDOWS ÖZET Klasöre girmek için veya dosya çalıştırmak için;
Bilgi Teknolojisinin Temel Kavramları
Bölüm 2 C Dilinin Temelleri
Bilgi Teknolojisinin Temel Kavramları
Atama ve Girdi/Çıktı Komutları
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Bölüm 10 Yapılar ve Birleşimler
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
NESNEYE YÖNELİK PROGRAMLAMA
Erişim Denetimi, Fonksiyon
Fonksiyonlar.
Değişkenler veri tipleri operatörler
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
Nesneye Dayalı Programlama
METODLAR.
Microsoft Power Point Dersi
Bilgisayar Grafikleri OPENGL
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları
C ile Programlamaya Giriş
Temel Veri Türleri ve Operatörler
FONKSİYONLAR.
BİLGİSAYAR DÜNYASI’NA HOŞGELDİNİZ!
BİLGİSAYAR SİSTEMİ.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Bilgisayar Programlama
Algoritma & Programlama
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
KLAVYEDE TUŞLAR İMLEÇ NEDİR?
BİLİŞİM TEKNOLOJİ DERSİ KLAVYENİN TUŞLARI
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR GRAFİĞİ Ders 5:PROJEKSİYONLAR
Bilgisayar Grafikleri Ders 12: OpenGL_5 Örnekler
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
Bilgisayar Grafikleri Ders 4: 2B Homojen koordinat
FARE VE KLAVYE ÖĞR. GÖR. A. ÇAĞLAR ERKAN.
BİLİŞİM TEKNOLOJİLERİ
Algoritmalar ve Programlama I Ders 10: ALTPROGRAM KAVRAMI ve FONKSİYON
Bilgisayar Grafikleri Ders 10: OpenGL_2
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
Bilgisayar Görmesi Ders 9:Korelasyon ve İki Boyutlu Dönüşümler
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
KIRPMA (Clipping) Bir grafik veri tabanından bir parçayı çıkarma işlemi olan kırpma bilgisayar grafiğinin temel işlerinden birisidir. Kırpma algoritmaları.
Bilgisayar Grafikleri Ders 5: 3B Homojen koordinat
ELEKTRONİK TABLOLAMA PROGRAMI: EXCEL
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
DERS: MESLEKİ BİLGİSAYAR MODÜL -2: İŞLETİM SİSTEMİNDE MASA ÜSTÜ
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
BİLGİSAYAR KOMUT: Bilgisayara istediğimiz şeyleri yaptırabilmek için verdiğimiz emirlerdir.
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Dili Bilgisayar Mühendisliği.
Bu Hafta Öğreneceklerimiz
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
BİLGİ SAYAR.
Bölüm 2 C Dilinin Temelleri
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 2 C Dilinin Temelleri
Sunum transkripti:

Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz

Dönüşümler void glRotate(double açı, double x, double y, double z) Şekil, açı derece kadar koordinatları x, y, z ile belirtilen noktanın etrafında döndürülür. void glTranslated(double x, double y, double z) Koordinatları x, y, z ile belirtilen noktaya koordinat sistemini öteler. void gluOrtho2D(double sol, double sağ, double alt, double üst) İki boyutlu görüş peneresinin (clipping window) büyüklüğünü belirler. 2 Dönüşümler OpenGL

void glLoadIdentity() Yapılmış tüm dönüşümlerin geri alınmasını sağlar. void glScaled(double x, double y, double z) Bu dönüşüm sayesinde ölçekleme yapılır. Eğer girilen değerler 1'den küçükse nesneler küçültülür, 1'den büyükse nesneler büyütülür. Bu işlevin float parametreler alan glScalef isimli türevi de mevcuttur 3 Dönüşümler OpenGL

Olay Tanımlama İşlevleri void glutReshapeFunc(void (*işlev) (int genişlik, double yükseklik)) Eğer pencere yeniden boyutlandırılırsa bu işlevin parametresi olan işlev çağrılır ve parametre olarak yeni genişlik ve yükseklik değerleri atanır. void glutIdleFunc(void (*işlev) (void) Hiçbir olay oluşturulmadığında çalıştırılacak işlevi belirtir. 4 Olay Tanımlama İşlevleri OpenGL

Artalanda Tamponlama Her seferinde ekrandaki görüntünün tazelenmesi CRT (=Cathode Ray Tube) tarafından yapılır. Bu olaya programımız müdahale edemez. Bellekte OpenGL'in çizim için kullandığı ekran bölgesine nokta eklemek çizgi çizmek gibi işlemlerle değişiklik yaptıkça ekrana bu değişiklikler anında yansıtılır. Ama tüm değişikliklerin yapıldıktan sonra ekranın tazelenmesini sağlayacak bir yol da vardır. 5 Artalanda Tamponlama OpenGL

Çizimi başka bir bellek bölgesinde yapıp sonra ekran bölgesine aktarabiliriz (double buffering). Arka planda ekranın yeni görüntüsü işlevlerle hazırlanır ve bu sırada ön planda yani kullanıcının gördüğü pencerede bir değişiklik olmaz. Biz programımızda glFlush() yerine glSwapBuffers() işlevini kullanırsak arka planda hazırladığımız değişiklikler ön plana yansır. 6 Artalanda Tamponlama OpenGL

Bu durumu "ya hep ya hiç" şeklinde işlenmesi gereken verilere benzetebiliriz. Arka planda şeklin tamamı çizildikten sonra ön plana aktarılır. Böylece ekran tazelenmesi sırasında ekranın titrememesi sağlanır. Ama artalanda tamponlama yapabilmek için penceremiz oluşturulmadan şu şekilde ilklendirme yapılması gerekmektedir: glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE); GLUT_DOUBLE sayesinde çift tamponlu bir penceremiz olur. Artık glFlush() yerine glSwapBuffers() kullanılarak artalanda tamponlama yapılabilir. 7 Artalanda Tamponlama OpenGL

Klavye ve Mouse Kullanımı 8 OpenGL

Klavye İşlevleri void glutKeyboardFunc(void (*işlev) (char tuş, int x, int y) Klavyeden bir tuşa basıldığında bu işlev çağrılır. x ve y farenin o andaki konumunu belirtir. tuş ise klavyede basılan tuşu belirtir. 9 Klavye İşlevleri OpenGL

void glutSpecialFunc(void (*işlev) (int tuş, int x, int y) Klavyedeki "Fonksiyon tuşlarını" yani işlev tuşları için bu işlev kullanılır. Örnek: if(key == GLUT_KEY_F1){ printf("F1'e bastiniz.\n"); } else if(key == GLUT_KEY_UP) { printf("Yukari ok tusuna bastiniz.\n"); } int glutGetModifiers() Herhangi bir tuşa basılmışken CTRL, ALT veya SHIFT tuşlarından birine basılıp basılmadığını bu işlev sayesinde öğrenebiliriz. Örneğin; glutSpecialFunc işlevi tarafından çalıştırılan myFunction işlevi şöyle bir kod içerebilir: 10 Klavye İşlevleri OpenGL

void myFunction(void) { int modifier;... modifier = glutGetModifiers(); if(modifier = GLUT_ACTIVE_SHIFT) { printf("SHIFT tusuna bastiniz."); }... } İşlevden dönen değeri GLUT_ACTIVE_SHIFT, GLUT_ACTIVE_CTRL, GLUT_ACTIVE_ALT sabitleri ile bulabiliriz. 11 Klavye İşlevleri OpenGL

Mouse İşlevleri void glutMouseFunc(void (*işlev) (int tuş, int durum, int x, int y)) Bu işlev farenin herhangi bir tuşuna basıldığı veya bırakıldığı zaman çalışır. x ve y farenin o andaki konumunu belirtir. tuş GLUT_LEFT_BUTTON, GLUT_RIGHT_BUTTON, GLUT_MIDDLE_BUTTON olarak tanımlanan sırasıyla sol, sağ ve orta fare tuşlarını belirtir. durum ise tuşun ne durumda olduğunu söyler. GLUT_UP, GLUT_DOWN sabitleriyle tanımlanı r. 12 Mouse İşlevleri OpenGL

void glutMouseFunc(void (*işlev) (int x, int y) Tuş basılı olarak fare hareket ettiğinde çalışan işlevdir. Farenin o anki konumu x ve y parametrelerine atanır. 13 Mouse İşlevleri OpenGL

void glutPassiveMotionFunc(void (*işlev) (int x, int y) Herhangi bir tuşa basılmaksızın farenin hareket edişi sırasında çağrılan işlevdir. Farenin o anki konumu x ve y parametrelerine atanır. void glutEntryFunc(void (*işlev) (int durum)) Fare pencere sınırlarına girince veya sınırlarından çıkınca çağrılan işlevdir. durum parametresinin aldığı değere göre GLUT_ENTERED ile farenin pencereye girdiği, GLUT_LEFT ile farenin pencereden çıktığı anlaşılır. 14 Mouse İşlevleri OpenGL