370 likes | 1.21k Views
Geometrik Dönüşümler. İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü. Genel Bakış. Bir koordinat sistemini bir başka koordinat sistemine eşleştiren fonksiyonlardır. Ayrıca bir noktayı belirten koordinat vektörünü aynı koordinat sistemi içerisinde başka bir koordinat vektörüne dönüştürür.
E N D
Geometrik Dönüşümler İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü
Genel Bakış • Bir koordinat sistemini bir başka koordinat sistemine eşleştiren fonksiyonlardır. • Ayrıca bir noktayı belirten koordinat vektörünü aynı koordinat sistemi içerisinde başka bir koordinat vektörüne dönüştürür. • Ders kapsamında 2B ve 3B geometrik dönüşümler ele alınacaktır.
Kullanımı • Bir sahnedeki nesneleri konumlandırmada • Nesnelerin şekillerini değiştirmede • Nesnelerin birden fazla kopyasını oluşturmada • Sanal kameralar için izdüşüm belirlemede • Canlandırmaları (animasyon) ifade etmede
Matematiksel Gösterimler • Bir nokta 2B için (x,y) ikilisi, 3B için (x,y,z) üçlüsü şeklinde ifade edilir. • Bu noktanın konum vektörü ise 2B için 2x1, 3B için 3x1 matris şeklinde yazılabilir. • Sahnedeki bir nesne (örn. 3B model) noktaların birleşimi olduğundan çok sayıda nokta için yazılabilecek lineer denklemler bir lineer denklem sistemi oluşturur. • Matris gösterimi ise hem lineer denklem sistemlerinin çözümünde kolaylık sağlar, hem de farklı türden dönüşümlerin aynı işlemle yapılabilmesine imkan tanır.
Genel Bakış İzdüşüm Affine Benzerlik Lineer Katı/Öklid Eşyönlü Ölçekleme Ölçekleme Yansıtma Kayma Birim Döndürme Taşıma Perspektif
Katı Cisim/Öklid Dönüşümleri • Uzaklık ve açıların korunduğu dönüşümlerdir. • Taşıma (translation) ve döndürme (rotation) bu türden dönüşümlerdir.
Benzerlik Dönüşümleri • Öklid dönüşümlerinin üst kümesidir. • Uzunluklar değişebilmekte fakat açılar korunmaktadır. • Eşyönlü ölçekleme (isotropicscaling) bu türdendir. Benzerlik Katı/Öklid Eşyönlü Ölçekleme Birim Döndürme Taşıma
Lineer Dönüşümler • L(p + q) = L(p) + L(q) ve L(ap) = a L(p) koşullarını sağlayabilen dönüşümlerdir. (bir dönüşümün lineer olma şartı) • Yansıtma (reflection), ölçekleme (scaling), kayma (shear) bu türden dönüşümlerdir. Benzerlik Lineer Katı/Öklid Eşyönlü Ölçekleme Ölçekleme Yansıtma Kayma Birim Döndürme Taşıma
Affine Dönüşümler • Birbirine paralel doğruların paralelliği korunur.
İzdüşüm Dönüşümleri • İzdüşüm türüne göre korunan özellikler değişmektedir.
2B’ de Taşıma • Taşıma için ilk konum vektörünün x ve y bileşenlerine taşıma vektörünün x ve y bileşenlerinin eklenmesi ile son konum vektörünün koordinatları bulunur. • Burada P ilk koordinatları belirten vektör, T taşıma vektörü ve P’ ise son koordinatları belirten vektördür. y P’ T Ty Tx P x + +
2B’ de Döndürme • İşlem kolaylığı açısından döndürme işlemleri orijin noktası etrafında yapılır. • Burada P ilk koordinatları belirten vektör, R döndürme matrisi ve P’ ise son koordinatları belirten vektördür. y P r θ P’ r x - +
2B’ de Ölçekleme • Burada P ilk koordinatları belirten vektör, S ölçekleme matrisi ve P’ ise son koordinatları belirten vektördür. • Eğer Sx ve Sy eşitse, eşyönlü ölçekleme (uniformscaling) yapılır. İlk nesne ile ikinci nesnenin arasında geometrik benzerlik vardır. y P’ P x . .
2B’ de Yansıtma • Ölçekleme matrisinde Sx = -1 ve Sy = 1 ise x ekseni etrafında yansıtma yapılır. • Eğer Sy= -1 ve Sx = 1 ise y ekseni etrafında yansıtma yapılır. y P’ P x P’
2B’ de Kayma • Kayma/kaydırmadan kastedilen, nesnelerin yüksekliğinin sabit tutularak eğilmesi (shear) işlemidir. Nesnenin şekli bozularak farklı bir şekil elde edilir. • Ölçeklemenin y bileşeni sabit tutulup, x bileşeni eğim açısına bağlı olarak değiştirilir. y 2B homojen θ x
Homojen Koordinatlar • Ölçekleme ve döndürme matrisleri 2x2 boyutlarındadır. • Taşıma ise lineer bir dönüşüm olmadığı için 2x2 boyutlarında bir matris şeklinde yazılamaz. • Bu durum, birden fazla dönüşüm yapıldığında işlem güçlüğü ve matris boyutlarında tutarsızlığa neden olur. • Bunun önüne geçmek için bütün matrislere aynı işlemin uygulanabileceği yeni bir matris biçimi tanımlanabilir. • Dönüşüm matrislerine ilave bir koordinat eklendiğinde oluşan yeni matrisler aynı işleme tabi tutulabilir. (çarpım) • Böylece 2B 3B’ ye, 3B de 4B’ ye dönüşür. Bir noktaya yeni bir boyut eklendiğinde (w), noktanın homojen koordinatları elde edilmiş olur.
Homojen Koordinatlar • P2b(x,y) Ph(wx, wy, w), w≠0 • w, sıfır hariç herhangi bir tamsayı olabilir. • İzdüşüm dönüşümlerinde durum değişir. • Homojen koordinatlarla ifade edilen noktalara dönüşüm matrislerinin homojen koordinatlı hali uygulanır.
Homojen Dönüşüm Matrisleri • Taşıma • Döndürme • Ölçekleme
Örnekler • Taşıma: Nesneyi x yönünde -16 y yönünde +18 birim taşımak için • Döndürme: Nesneyi 123o döndürmek için • Ölçekleme: Nesneyi x yönünde 15 kat, y yönünde 17 kat büyütmek için
Dönüşümleri Birleştirme • Birden fazla geometrik dönüşümün uygulandığı durumlarda 3B modellerin her noktası için bütün matris çarpımlarını yeniden yapmak gereksizdir. • Bunun yerine geometrik dönüşüm matrislerini tek bir matriste birleştirip, 3B modelin bütün noktalarını bu matrisle çarparak istenen dönüşümler yapılabilir. • Çok sayıda geometrik dönüşüm matrisi sırayla çarpılarak dönüşüm matrisi elde edilir. • İşlem sırası önemlidir, yanlış sırada çarpım istenenden farklı sonuç verecektir.
Dönüşümleri Birleştirme • İlk önce çarpımı yapılır, sonuç bir soldaki matrisle çarpılarak en soldaki matrise doğru işlemler yapılır. • Matris çarpımlarının değişim özelliği yoktur.
3B Geometrik Dönüşümler • 2B dönüşümlere derinlik kavramının da eklenerek 3B uzaydaki nesneler için tanımlanan dönüşümlerdir. (z ekseni) • Bu dönüşümleri ifade etmek için de homojen koordinatlar kullanılır. • Dönüşüm matrisleri 4x4 boyutlarındadır. • Genelde sağ el kuralına göre koordinat eksenleri belirlenir.
3B’ de Taşıma • 2B için taşıma dönüşümünden farkı z koordinatı değerlerinin de dönüşüm matrisine eklenmesidir.
3B’ de Ölçekleme • 2B için ölçekleme dönüşümünden farkı z ekseninde ölçeklemenin de dönüşüm matrisine eklenmesidir.
3B’ de Yansıma • 3B’ de yansıma düzlemlere göre, doğrulara göre (temel eksenler gibi) veya noktalara (orijin) göre tanımlanabilir.
3B’ de Döndürme • 2B’ de döndürme belli bir noktaya (genelde orijin) göre olduğundan ifade edilmesi kolaydır. • 3B’ de ise döndürme için sonsuz sayıda dönme noktası tanımlanabileceğinden, dönüşüm matrisini elde etmek uğraştırıcı ve karışıktır.
Koordinat Sistemleri Arasında Dönüşümler • Dünya koordinatlarıile tanımlanan nesnelerin, görüntüleme koordinat sistemine aktarılması için dönüşüm matrisi tanımlamak gerekir. • Görüntüleme koordinat sistemini oluşturabilmek için öncelikle u, v, n birim vektörleri bulunur. • Görüntüleme koordinat sistemini, dünya koordinat sistemi ile aynı hizaya getiren dönüşüm iki matristen oluşur. • Önce bakış noktasını orijin noktasına taşınır. • Eksenleri hizalamak için döndürülür.
Koordinat Sistemleri Arasında Dönüşümler • Böylece dönüşüm matrisi