Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanEmin İpekçi Değiştirilmiş 8 yıl önce
2
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ı iki ya da üç boyutlu, düzgün ya da düzgün olmayan bölge ya da hacimler için geliştirilmiştir. Bu algoritmalar donanım ya da yazılım olarak gerçeklenmektedir. Yazılım olarak gerçeklendiğinde gerçek zaman uygulaması için daha yavaş olacaktır. Bir nesne üzerinde kırpma algoritmalarının uygulanmasının başlıca nedenleri şunlardır: Ekran sınırları bellidir ve ekran dışına yapılacak çizimler sorunlara yol açabilir. Görüntülenen bir nesnenin ekranın diğer kısımlarında bulunan nesnelerin üzerine gelmesinin istenmediği durumlar olabilir. Görüntülenen nesne, ekran sınırlarında olmaya bilir veya çok az bir kısmı ekran sınırları içerisindedir. Kırpma işlemleri sonucunda, nesnenin görünmeyen kısımları için yapılması gereken işlemler es gecilir. Dolayısı ile çizim sırasında önemli hız artışları sağlanır.
3
Şekilde iki boyutlu bir sahne ve düzgün bir kırpma penceresi gösterilmiştir. Pencere sol (L), sağ(R), üst(T), alt (B) köşeleri ile tanımlanmaktadır. Düzgün bir kırpma penceresi dikdörtgendir ve ekran ya da obje uzayı ile kenarları paraleldir. Kırpma algoritmasının amacı hangi nokta, çizgi, çizgi parçasının kırpma penceresi içinde kaldığını belirler. Kırpma penceresi içinde kalan noktalar, çizgiler ve çizgi parçaları gösterilecek, diğerleri kırpılıp atılacaktır. Bir resim ya da sahne için çok sayıda çizgi ve noktaların kırpılması söz konusu olduğu için algoritmanın verimliliği büyük önem taşımaktadır. Çoğu durumda bir çok nokta ( q gibi ) ve çizgi (i j gibi) kırpma perceresi dışında ya da P noktası, ab doğrusu gibi pencere içinde olacaktır. Bu nedenle bu türlerin çabucak kabul veya ret kararlarının verilebilmesi önemlidir.
4
İse nokta kırpma alanı içerisindedir. Pencere sınırı dahil olarak kabul edilmiştir. Nokta Kırpma Çizgiler için baktığımızda, eğer çizginin her iki uç noktasında pencere içinde ise çizgi görülebilir. Şekilde ab çizgisi gibi. Ancak tersi geçerli değildir. Çizginin her iki uç noktası pencere dışında ise bu durumda çizgi ya pencere dışında (ij) ya da pencereyi kesmektedir (gh). Basit bir görebilirlik algoritması; { (x a, y a ) ve (x b, y b ) çizginin uç noktalarıdır. } { x L, y T,x R, y B pencere köşe koordinatlarıdır. } Doğru Kırpma
5
{ Eğer her iki noktanın herhangi bir koordinatı pencere dışında ise çizgi tam görülebilir değildir.} başla if x a x R then 1 if x b x R then 1 if y a y T then 1 if y b y T then 1 { çizgi tam görülebilir.} çizgiyi çiz goto 3 { Tam olarak görülmeyen çizgi olup olmadığını sına } 1if x a < x L or x b < x R then 2 if x a > x L or x b > x R then 2 if y a > y T or y b > y T then 2 if y a < y B or y b < y B then 2 { Çizgi kısmi görülebilirdir ya da pencereyi kesmektedir.} { Kesim noktalarını hesapla } goto 3 2 çizgi görülemezdir. 3 sonraki çizgiyi ele al, başa dön
6
Doğru kırpma işleminden sonra, kırpma penceresinin dışında birden fazla parça kalabilmektedir. Ancak kırpma penceresinin içerisinde sadece bir doğru parçası bulunabilir. Bir doğruyu kıpmak için kırpma işleminden sonra, elde edilecek doğru parçasının iki bitim noktasının hesaplanması yeterlidir. Doğru kırpma yöntemlerinin en belirgin özelliği, doğruyu kırpmadan önce bazı ön testler yaparak kesişim hesaplamalarını azaltmak ve algoritmayı mümkün olduğunca hızlandırmaktır.
7
Dan Cohen ve Ivan Sutherland Doğru Kırpma Algoritması Görülebilirlik ya da görülemezlik testinin hangisinin önce yapıldığı önemsizdir. Ancak kesim noktası hesabı pahalıdır ve sonra yapılmalıdır. Dan Cohen ve Ivan Sutherland’ ın bu testler için geliştirdikleri bir teknikle, dört bitlik bir kod kullanılmıştır. Bu kodlama kullanılarak uç noktalarının 9 bölgeden hangisinde olduğu gösterilmektedir. Bölge kodları şekilde gösterilmektedir. En sağ bit ilk bir olmak izere bu dört bitin anlamı şöyle; Her çizginin her iki uç noktasının kodu 0000 ise çizgi pencerenin içindedir ve çizgi görülebilir. Bunun dışındaki çizgiler için tam olarak görülemezlik testi için uç nokta koordinatlarına bit-bit and işlemi uygulanır.
8
Eğer sonuç 0000 değilse çizgi tam görülemezdir. Şekildeki örnek çizgilerden bazıları için testi uygularsak; ÇizgiUç nokta kodlarıLojik işlemKarar Ab0000-00000000Tam görülebilir ij sağ0010-01100010Tam görülemez ij sol üst1001-10001000Tam görülemez Cd0000-00100000Kısmen görülebilir Ef0001-00000000Kısmen görülebilir Kl1000-00100000Tam görülemez
9
Dikkat edilirse lojik işlem sonucu sıfır olan farklı ise tam görülemez kararını verebiliyoruz. Ancak lojik işlem sonucu sıfır çıktığında, çizgi tam ya da kısmen görülebilir olduğu gibi tam görülemez (kl) de olabilmektedir. Bu durumda tam görülebilirlik için uç noktaların kodlarına da bakmak gerekir. Eğer bit manipulasyonu mümkünse uç nokta kodlarını sınamak çok kolaydır. İki çizginin kesim noktası parametrik ya da parametrik olamayan gösterim kullanılarak hesaplanabilir. P 1 (x 1, y 1 ), P 2 (x 2, y 2 ) noktalarından geçen çizgi;
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.