Doğrudan Çizim Algoritması (Direct Draw Algorithm , DDA)
Yazan : Şadi Evren ŞEKER Bilgisayar grafiği konusunda bir doğru çizmek için kullanılan algoritmalardandır. Algoritma 2 veya 3 boyutlu olarak uygulanabilir. Algoritma basitçe bir doğrunun geçeceği yatay hatları işaretleyerek çalışır. Örneğin aşağıdaki tasvirde bir doğru gösterilmiş ve bu doğrunun hangi imgecikleri (pixel) işaretleyeceği gösterilmiştir.
Yukarıda da görüldüğü üzere bir doğru, yatay eksene paralel veya yatay eksene yakın bir eğimdeyse net olarak görülebilmektedir. Ancak dikey eksene paralel bir doğru ancak iki noktadan (başlangıç ve bitiş noktaları) oluşmaktadır. Bu durumda DDA algoritması çok başarılı olamamaktadır. Bu durumun iyileştirmesi için de doğrunun eğimi hesaplanmakta ve eğim 45 dereceden yüksekse bu defa işaretlenen imgecikler dikey eksene paralel olarak alınmaktadır.
Bu algoritmanın çalışmasını matematiksel olarak şöyle anlatabiliriz. Basitçe bir doğruyu veren formül iki boyutlu düzlem için aşağıdaki şekildedir:
y = m x + b
Buradaki y ve x değerleri koordinat sistemindeki değişken eksenler, m eğim ve b ise kayma miktarıdır. Örneğin eğim için:
m = (yson – ybaşla ) / (xson – xbaşla)
şeklinde hesaplanabilir. Dolayısıyla eğimin aslında yatay eksenle yapılan açının tanjantı olduğunu hatırlayalım. DDA algoritması bu eğim değerini işaretleyeceği imgecikleri (pixel) belirlerken kullanır.
Şayet eğim 1′den küçükse yani |m| < 1 ise:
xk+1 = xk + 1
yk+1 = yk + m
Şayet eğim 1′den büyükse yani |m| > 1 ise:
yk+1 = yk +1
xk+1 = xk + 1/m
olarak bir sonraki imgeciğin (piksel) hesaplanması mümkün olmaktadır. Buna göre DDA algoritmasına başlangıç ve bitiş koordinatları verilen iki nokta arasında doğru çizmesi istendiğinde bu iki nokta arasındaki eğimi ve bu eğime göre doğrunun geçtiği her imgeciğing (pixel) koordinatlarını hesaplayarak çizmektedir.
« Seyyar Tüccar Problemi (Traveling Salesman Problem) | Bresenham Doğru Çizim Algoritması (Bresenham’s Algorithm) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Doğrudan Çizim Algoritması (Direct Draw Algorithm , DDA)' isimli yazı 28 Aug 2008 tarihinde, saat: 13:36 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1678 defa okunmuştur.
Benzer yazıları Bilgisayar Grafiği (Computer Graphics) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
Doğrudan Çizim Algoritması (Direct Draw Algorithm , DDA)
Ekranda verilen poligonu tekrarlayan kod
Ekrana Trafik Işıkları Çizen Kod
Cohen-Sutherland Doğru Kesme Algoritması (Line Clipping Algorithm)
Pisagor Yöntemi İle Çember (Pythagorean Theorem in Circle Drawing)
Sierpinski Üçgeni (Sierpinski Triangle)
Tersine Koyarak İspat (antitez, Contraposition)
Bresenham Doğru Çizim Algoritması (Bresenham's Algorithm)
Arama Algoritmaları (Search Algorithms)
Çokgenlerin Doldurulması (Filling Polygons)
Genişletilmiş Ufak Şifreleme Algoritması (Extended Tiny Encryption Algorithm (XTEA))
Konumlandırılabilir Kod (Relocatable Code)
Kochanski Çarpımı (Kochanski Multiplication)
Brent Algoritması (Brent's Algorithm)
Edmonds Karp Algoritması (Edmonds Karp Algorithm)
OpenGL Nesne Seçimi (Object Picking)
Bağlantılar
