Dönüşüm (Transformation) Matrisi
Eğer graphic notlarımı ilk defa okuyorsanız. İlk önce Giriş belgesini okumanızı tavsiye ederim.
- Kod örneklerinde, matris hesaplamaları için WebGL-Math kullanıldı.
Başka bir seçenek olarak glMatrix de kullanılabilir. - Örnekler CSS transform özelliğinin matrix3d() fonksiyonu üzerinden verildi.
Öteleme (Translation)
Uzayda, bir noktayı T vektorü boyunca hareket ettirmek için kullanılır ve şu şekilde gösterilir:
Örnekte nesne (50, -75, 0) vektörü ile öteleniyor.
Döndürme (Rotation)
Uzayda, bir noktayı R ekseninde θ derece dönürmek için kullanılır.
Örnekte nesne Z ekseni boyunca 45° derece döndürülüyor.
Ölçekleme (Scaling)
Uzayda, bir noktayı S vektorüne göre ölçeklemek için kullanılır ve şu şekilde gösterilir:
Örnekte X ekseninde 1.5, Y ekseninde 0.75 katına çıkarılıyor. Z ekseninde ise aynı ölçekte kalıyor.
Dönüşüm İşlemlerini Birleştirmek
İki dönüşüm matrisine, çarpım işlemi uygulanarak aynı dönüşümü yapan tek bir matris elde edilebilir.
- Matris çarpımının değişme özelliği yoktur.
- Bu yüzden matrislerin çarpım sırasının değişmesi sonuçta çıkacak dönüşümü de değiştirecektir.
- Dönüşümlerin nesneye uygulanma sıralaması, çarpım işlemlerinin sıralaması ile ters olacaktır.
Örnekte dönüşümlerin Ölçekleme, Döndürme ve Öteleme sıralaması ile uygulandığı görülüyor.
Çarma işlemlerini sırasını değiştirerek sonucun nasıl değiştiği görülebilir.