plazma - amatör bilgisayar kültürü

Grafik Efektler için Matematik

Bilgem 'Nightlord' Çakır

1. Koordinat Sistemleri ve Vektörler

Vektör efektlerinin temelini oluşturan kavram çok boyutlu uzay geometrisidir. Bu karizmatik ada kanmayın aslında basit bir konudur. Bizim üzerinde çalışacağımız koordinat sistemleri birbirine dik eksenlerin oluşturduğu sistemler olacak. İlk olarak bu koordinat sistemlerinde yer alan vektörler ve onların üzerindeki basit bazı işlemlerden bahsedeceğiz. Ardından vektörler üzerinde dönüşüm adı verilen işlemlerden bahsedeceğiz.

Dönüşümler, yer değiştirme, döndürme ve ölçekleme olacak. Bu kavramları önce 2 boyutlu uzayda anlatacağım. Ardından 3 boyuta geçmemiz zor olmayacak.

İki boyutlu uzay Şekil 1'de görüldüğü gibi birbirine dik x ve y eksenlerinin ifade ettiği bir uzaydır. Bu uzayda her nokta bir x ve bir y koordinatı ile ifade edilebilir.

2 boyutlu uzayda eksenler

Şekil 1.

Bu uzayda noktaların x ve y koordinatları ile nasıl ifade edildiğine Şekil 2'deki örneklerden bakabilirsiniz. Koordinat sisteminde (0,0) noktası özel olarak adlandırılır. Bu noktaya origin denir.

örnek noktalar

Şekil 2.

2. Vektörler

Vektörler matematikte çok boyutlu değerlerdir. Bu ne demek? Matematikte büyüklükler skaler ve vektörel diye iki gruba ayrılır. Skaler değerler 3, 5, 12000, 4√2 gibi tek bir reel sayı ile ifade edilebilen değerlerdir. Vektörler ise çok boyutlu değerlerdir. Çok boyutlu bir uzayda bir yön ve büyüklük ifade ederler.

Vektörler en çok fizikte kuvvetleri, manyetik ve elektriksel alanları ifade etmekte kullanılırlar. Vektörleri çok boyutlu sayılar gibi düşünürseniz onlar üzerinde toplama çıkarma gibi işlemlerin de yapılabileceğini anlarsınız. Şekil-2'deki noktaları vektörler olarak da düşünebiliriz. Vektörler şemalarda gösterilirken bir ok olarak gösterilirler ve V1, V2, P, Q gibi büyük harf ve rakamlarla isimlendirilirler. Ok olan uca baş, diğer uca kuyruk denir

Şekil-3'te örnek vektörler görebilirsiniz. Unutmamanız gereken bir nokta var. Vektörleri ifade eden oklar koordinat sisteminde farklı yerlere çizilebilirler. Önemli olan vektörün kuyruğu origine getirilince vektörün başının nereye geldiğidir. Vektörün değeri, kuyruk origindeyken baş noktasının koordinatlarıdır.

örnek vektörler

Şekil 3.

3. Vektör İşlemleri

3.1. Vektörlerin Toplanması

Vektörlerde toplama işlemi şöyle yapılır. Diyelim ki P(2,1) ile Q(-1,2) vektörlerini toplamak istiyoruz. Bütün yapmamız gereken aynı eksenlerin koordinatlarını toplamaktır. Yani iki vektörün x koordinatları olan 2 ve -1 değerlerini toplayarak sonuç vektörünün x koordinatını elde ederiz. Aynı işlemi y koordinatlarına da yaparız.

P + Q = R

(2,1) + (-1,2) = (2+(-1), 1+2) = (1,3)

yani genel olarak:

(x1,y1) + (x2,y2) = (x1+x2, y1+y2)

Vektör toplamasını aynı zamanda görsel olarak da yorumlayabiliriz. P vektörünü kuyruğu origine gelecek şekilde yerleştirdikten sonra Q vektörünü kuyruğu P'nin başına gelecek şekilde yerleştiririz. Bu anda Q'nun başı nereye geliyorsa sonuç vektörü originden bu noktaya kadarki vektördür. (Bkz. Şekil 4)

vektörlerin toplanması

Şekil 4.

3.2. Vektörlerin Tersi

Vektörlerin tersini almak için bütün yapmamız gereken koordinatların tersini almaktır.

-(P(x1,y1)) = (-x1,-y1)

Grafiksel olarak bunun anlamı vektörün başı ve kuyruğunu yer değiştirmektir. Yani vektörü tam ters istikamete baktırmaktır.

3.3. Vektörlerin Çıkarılması

Vektörlerin çıkarılması demek birinci vektör ile ikinci vektörün tersinin toplanması demektir. Başka bir deyişle koordinatlar arası çıkarma işlemi yapılır.

P – Q = P + (-Q) = R

(x1,y1) – (x2,y2) = (x1-x2,y1-y2)

Grafik yorumu ise şudur. İkinci vektörün tersinin kuyruğu birinci vektörün başına eklenir.(Bkz Şekil-5)

Vektörlerin Çıkarılması

Şekil 5.

3.4. Vektörlerin Çarpılması

örlerin Çarpılması

Vektörlerde toplama ve çıkarma işlemlerinden bahsettikten sonra sıra çarpma işlemine geldi. Fakat vektörler söz konusu olduğunda çarpma işleminin üç değişik versiyonundan bahsedebiliriz.

  1. Bir skaler ile bir vektörün çarpımı

  2. İki vektörün nokta çarpımı (dot product)

  3. İki vektörün çapraz çarpımı (cross product)

Çapraz çarpım konusuna şimdilik değinmeyeceğiz. Vektörlerde çarpma işlemlerinden bahsederken ihtiyacımız olacak olan bir kavram daha var. Vektörlerin boyu. Bu konuyu kısaca açıkladıktan sonra skaler çarpıma geçebiliriz.

3.5. Vektörün Boyu

Vektörleri ilk başta tanımlarken bir büyüklük ve bir yön ifade ettiklerini söylemiştik. İşte bu büyüklüğü vektör koordinatlarından elde etmenin yolundan bahsetmenin zamanı geldi. Aslında bir vektörün boyunu bulmak için pisagor teoremini kullanmamız yeterlidir. P vektörünün boyunu [P] diye gösterirsek:

P(x1,y1) olsun

[P] = √(x1² + y1²)

Şekil 6.

3.6. Vektör ile skaler çarpımı

Hatırlarsanız vektörler için çok boyutlu büyüklükler, skalerler için ise tek boyutlu büyüklükler demiştik. Bir skaler ile bir vektörün çarpımı tanımlı bir işlemdir ve sonucu da bir vektördür. Bütün yapmamız gereken skaler ile vektörün tüm bileşenlerini teker teker çarpıp sonuçlardan yeni bir vektör oluşturmaktır:

n skaler bir sayı olsun. P(x1,y1) vektörünü n ile çarparsak:

n * P(x1,y1) = (n*x1, n*y1)

n pozitif bir sayı ise bu yaptığımız çarpım, Vektörün yönünü değiştirmeden boyunu n oranında uzatır. n negatif ise yönü tam olarak tersine çevirip n'nin mutlak değeri oranında boy uzatılır. Uzatılır diyorsak da unutmayın n eğer 0 ile 1 arasında bir değere sahipse o zaman vektörün boyu kısalmış olur.

Şekil 7.

3.7. Vektörlerin nokta çarpımı

İki vektörün nokta çarpımı şöyle tanımlanmıştır:

P(x1,y1) . Q(x2,y2) = (x1*x2) + (y1*y2)

Yani x koordinatları birbiri ile çarpılır. Aynı şekilde y koordinatları birbiri ile çarpılır. Bu iki çarpım toplanır. Yani nokta çarpımın sonucu bir skalerdir.

Bazı trigonometrik çıkarımlardan sonra bu işlemin aslında aşağıdaki gibi de ifade edilebildiğini görürüz.

P(x1,y1) . Q(x2,y2) = [P][Q]cos(a)

Burada a açısı P ve Q vektörlerinin arasındaki açıdır. [P] P'nin uzunluğudur (boyudur).Bu işlem geometrik olarak şöyle yorumlanabilir. [P]cos(a) aslında P vektörünün Q üzerine olan izdüşümünün boyudur. Bu “izdüşüm boyu” ile Q'nun boyunun çarpımı, nokta çarpımını verir.

Şekil 8.

Örnek: (2,5) . (1,-2) = (2*1) + (5*(-2)) = 2 + (-10) = -8

Nokta çarpımın 3D efektlerdeki en önemli faydalarından biri iki vektör arasındaki açıyı bulmaya yaramasıdır. Bu açı da ışıklandırma efektlerinde işe yarar.

(x1*x2) + (y1*y2) = [P][Q]cos(a)

cos(a) = ( (x1*x2) + (y1*y2) ) / ( [P][Q] )

cos(a)'yı bildiğimiz için a'yı da bulabiliriz. Ama çoğu zaman zaten bize lazım olan a'nın kendisi değil cosinüs’üdür. Bunu ileride göreceksiniz.

Son olarak ufak bir gözlem yapmanızı isteyeceğim. İki vektörün aralarındaki açı 90 derece ise nokta çarpımları ne olur? cos(90)'ın değeri 0'dır. Yani vektörlerin boyları ne olursa olsun 0 ile çarpılacakları için aralarındaki açı dik olan iki vektörün nokta çarpımı her zaman 0 olacaktır.

Önümüzdeki bölümde vektörlerin 3d efektlerde nasıl kullanıldığından bahsedeceğiz

plazma - (2006 - 2011)