2 Boyutlu Döndürme (2D Rotation)
Yazan: Şadi Evren ŞEKER
Bilgisayar grafiklerinde şekil değiştirme işlemlerinden birisidir. Bu işlemin amacı bir şekli mevcut konumunu ve şeklini bozulmadan bir eksen etrafında döndürmektir. Aşağıdaki örnekte gösterilen döndürme işleminin formülü verilmiştir:

x’ = r.cos(Φ+Θ)
y’ = r.sin(Φ+Θ)
Yukarıdaki bu formülasyonu aşağıdaki matris ile ifade etmek mümkündür:
cos Φ -sin Φ sin Φ cos Φ
Bu döndürme matrisini çıkardıktan sonra aşağıdaki denklem yazılabilir:
P’ = R P
Buradaki R matrisi döndürme matrisidir. P ve P’ matrisleri ise sırasıyla noktanın ilk koordinatları ve son koordinatlarıdır.
Ayrıca döndürme işlemi merkezden kaydırılmış bir şekilde de yapılabilir. Yani merkez etrafında değil, aşağıdaki gibi bir nokta etrafında da yapılabilir:

Bu durumda yukarıdaki formüllerin kaydırılmış hali:
x’ = xr + (x-xr).cos Φ – (y-yr).sin Φ
y’ = yr + (x-xr).sin Φ – (y-yr).cos Φ
« 2 Boyutlu Şekil Dönüşümleri (2D Transformations) | Ölçeklendirme (Scaling) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz '2 Boyutlu Döndürme (2D Rotation)' isimli yazı 04 Nov 2008 tarihinde, saat: 00:52 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1371 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
2 Boyutlu Şekil Dönüşümleri (2D Transformations)
Homojen Koordinatlarla Şekil Değiştirm
Varlık-Durum Tablosu (Symbol Instance Table)
2 Boyutlu Döndürme (2D Rotation)
Mafsallı Tasarım (Articular Design)
İç içe döngüler (Nested Loops)
OpenGL Şekil Değiştirme İşlemleri (Transformations)
Homojen Koordinatlar (Homogenous Coordinates Form)
Ters Şekil Değiştirme Matrisleri
Öklit Mesafesi (Euclidean Distance, Euclidean Metric)
Çok boyutlu diziler (MultiDimensional Arrays)
Doğrudan Çizim Algoritması (Direct Draw Algorithm , DDA)
2 boyutlu Taşıma (2D Translation)
Bağlantılar
Bu durumda yukarıdaki formüllerin kaydırılmış hali:
x’ = xr + (x-xr).cos Φ – (y-yr).sin Φ
y’ = yr + (x-xr).sin Φ – (y-yr).cos Φ
yazmışsınız.
bu formülde teta yok. Bir hata mı var?
Hayır yok, bir noktanın, herhangi bir eksen ile yaptığı açının arttırıldığı miktar (ki yukarıdaki anlatımda ve sizin verdiğiniz formüllerde fi “Φ” olarak geçiyor ) kadar döndürülmesi yeterlidir. Bu durumu kutup koordinat olarak düşünebilirsiniz. Yani kartezyen uzaydaki döndürme işlemleri biraz karmaşık geliyor olabilir. Aslında yapılan işlem kutup koordinattaki açıyı arttırmak (veya azaltmak) ve ardından da kartezyen uzaya çevirmektir.
fi açısından teta kadar döndürme değilde, herhangi bir açıdan fi kadar döndürme formülü oluyor bu anladığım kadarıyla.
evet, yukarıda açıklanan, herhangi bir noktaya r uzaklığında fi açısı kadar yapılan saat yönünün tersine (counter clockwise) döndürme için kullanılan formüldür.
Nokta (xr, yr) koordinatlarında, uzaklık r ve dönüş açısı fi ile gösterilmiştir.