Bilgisayar Matematiğine Giriş
Coordinat Sistemi
Bilgisayar'da Koordinat
|
Analitik Koordinat
|
Nokta, uzaydaki en basit birimdir. 2 boyutlu uzayda bir nokta x ve y değerleriyle belirtilir. Bu değerler belli bir orijine olan uzaklıklarını belirtirler. Eksi değerler aldıklarında noktanın koordinat orijinin boyuta temel alınan yönüne ters yönde olduğu anlamı çıkar. Noktalar P(x,y) şeklinde bir gösterimle belirtilebilir. A(2,-3) noktası x'i 2 y'si -3 olan A adında bir nokta demektir.
Dönüştürme (Transformation)
Bir noktannın yerinin değiştirilmesi işlemine 'dönüştürme' denir. P(x,y) şeklinde bir nokta P'(x',y') noktasına dönüştürülebilir.
Öteleme
n basit dönüşüm ötelemedir. Bir noktanın x ve y değerlerine belli bir değer eklenmesi ve çıkartılası sonucu oluşur :
x'=x+dx
y'=y+dy
P P' Noktasına Dönüştü
|
Öteleme 'toplama' tabanlı bir operasyondur. Elbette dx ve dy eksi değerler alırsa çıkarma olur. Yeni nokta eski noktanın kaydırılmış halidir.
Boyutlandırma (Scaling)
Bir noktanın boyutlarını belli katsayılarla çarpma işlemine boyutlandırma denir.
x'=x*sx
y'=y*sy
u işlem de çarpma tabanlıdır. Katsayılar 1'den büyükse çekil büyümüş, değilse küçülmüş olur.
Döndürme (Rotation)
Bir nokayı belli bir açı kadar çevirme işleminde döndürme denir. Bu işlemin formulü
x'=x*cos(t)-y*sin(t)
y'=x*sin(t)+y*cos(t)
Trigonometrik yöntemlerle elde edilen bu formüller, t kadar döndürülen bir noktanın yeni konumunu verir. Öteleme ve boyutlandırma'nın aksine bu dönüşümde x ve y'Nin yeni değerleri hem x'in hem de y'nin eski değerlerine bağlıdır. Yani x'in yeni değeri sadece eski değerine bir işlem uygulamak suretiyle elde edilemez.
Vectör ve Matris Gösterimleri
Nokta Vectörü
şeklide yatay veya
şeklinde bir dikey vektör (tek boyutlu matris)'le belirtilebilir. Genellikle dikey gösterim kullanılır.
Dönüşüm Matrisi
Dönüşüm işlemi de 2x2 bir matrisle gösterilebilir:
P'=S*P
şeklinde belirtilebilir. Bu matris çarpma işlemi yapıldığında
x'=x*sx
y'=y*sy
sonucu çıkar ki bu da matris kullanmadan önceki bağıntının aynısıdır.
Homojen Koordinatlar
Toplama işlemini de matris çarpımıyla göstermek, bir çok dönüşümü birleştirip tek indirmek gibi kolaylıklar sağladığı için 'homojen koordinatlar' denilen bir yapı kullanılır. Bununla x ve y'nin dışında bir üçüncü boyut da varmış gibi gösterilir. Ancak üçüncü boyuttaki değer 1'dir. P(x,y) noktası
şekilnde belirtilir. Dönüştürme işlemi
şeklinde belirtitilir. Buna göre öteleme işlemi
şeklinde belirtilebilir. Matris çarpımı yapılırsa yine asıl bağıntıya ulaşılır. Boyutlandırma
şeklinde, döndürme de
| = |
|
cos(t) | -sin(t) | 0 |
sin(t) | cos(t) | 0 |
0 | 0 | 1 |
| |
| * |
|
şeklinde belirtilir.
Diğer Dönüşümler
Yansıma (Reflection)
Bir noktanın belli bir exsene göre simetriğini alan dönüşüme yansıma denir. Y exsenine göre yansıma dönşüm matrisi x'i ilgilendiren katsayının -1 verilmesiyle elde edilir. X exsenine göre yansıma da y'yi ilgilendiren katsayının -1 olmasıyla elde edilir. Her iki katsayının da -1 olması durumunda her iki kesene göre de yanısıma elde edilir
Y Eksenine
|
| |
|
X Eksenine
|
| |
|
Hem X hem Y' ye
|
| |
|
Hatta, y=x doğrusuna ve y=-x doğrusuna göre yanısmalar da yazılabilir. Bu durumda yeni x'değeri y'ye, yeni y değeri de x'e bapluı olur :
Kaykıltma (Shear)
Bir koordinat sabitken diğerdiğerinde bu koordinata bağlı değişiklik yapılında kaykıltma dönüşümü oluşur.
Bileşik Dönüşümler
Herhangi bir noktaya yapılan birden fazla dönüşüm birleştirilip tek bir dönüşüm elde edilebilir. Hernokta için çok sayıda dönüşümün ayrı ayrı uygulanması zorunluğundan kurtulunduğu için bu işlem performansı arttırıcı etti gösterir. İki dönüşümün bilişiği iki dönüşüm matrisinin çarpılması demektir.
M = A*B
bu şeklide
P' = A*P
P'' = P'B
yerine
P''=B*(A * P)
P''=M*P
eşitliği üretilir.
Önce A sonra B uygulama demek B*A uygulama demektir, A*B değil. Genel olarak
A*B != B*A
Önce belli bir noktaya ötelenen orada boyutlandırılan ve döndürülen dönüşüm
M=T*S*R
şeklinde üretilebilir.
Göreli Dönüşümler
Şimdiye kadar anlatılan bütün dönüşümler orijine veya belli bir eksene göre belirtilmiştir. Döndürme işlemi orijine göre döndürme demekir. Bazı durumlarda orijine göre değil noktanın belli bir noktaya göre, örneğin kendi merkeszine göre döndürülmesi gerekebilir.
Orijine Öteleme
Bir P(x,y) noktasının belli bir P(xo,yo) noktasına göre bir işleme tabi tutulmasını sağlamak için öncelikle P(xo,yo) noktasını oijinb kabul edecek bir dönüşüm yapılır
buna göre
P'=T*P
yapıldığında noktanın yeni hali orijini belirtilen nokta olacak şekilde değiştirilmiş olur. Noktayı geri gerimek de aynı ötelemenin ters işaretlisidir.
T' | = |
y=-x e Göre
|
| |
|
Bir Noktaya Göre Döndürme
Orjine Göre Döndürme
|
Kendi Merkezine Göre Döndürme
|
Bir şekli beli bir noktaya göre döndürmek için, önce şekli o noktaya göre orijine ötelemek, döndürmek sonra tekrar eski noktasına getirmek gerekir. Bu da bileşik bir dönüşümdür. Bir P(x,y) noktasını P(xo,yo) noktasına göre t kadar dönürmek için. Önce orijine öteleme, sonra döndürme, sonra da geri öteleme yapılır.
Geri Ötele
|
| |
| * |
Orjine Göre Döndür
|
cos(t) | -sin(t) | 0 |
sin(t) | cos(t) | 0 |
0 | 0 | 1 |
| |
| * |
Orijine Ötele
|
| |
|
bu dönüşüm sonunda ortaya çıkan bileşik dönüşüm, cos(t) yerine ct, sin(t) yerine st koyarak yazılınca
M | = |
|
cos(t) | -sin(t) | x0(1-cos(t))+y0*sin(t) |
sin(t) | cos(t) | y0(1-cos(t))-x0*sin(t) |
0 | 0 | 1 |
| |
|
Bir Noktaya Göre Boyutlandırma
Orjine Göre
|
Merkezine Göre
|
Bir şekli bir noktaya göre boyutlandırma, önce o noktaya göre orjine öteleme, sonra boyutlandırma sonra da geri ötelemekten ibarettir. Bunun için
M = T' * S * T
işlemi
şeklinde yazılırsa
M | = |
|
sx | 0 | x0(1-sx) |
0 | sy | y0(1*sy) |
0 | 0 | 1 |
| |
|
elde edilir.
Bir Yönde Boyutlandırma
Boyutlandırma işlemi x'e göre ve/veya y'ye göre yapılmaısnın dıında belli bir yöne göre de yapılabilir. Bunun için noktalarıyı belli bir açıya göre döndürmek, sonra boyutlandırmak sonra da tekrar geri döndürmek gereklidir.
Bir oktayı t açısında göre scale etmek için
M = R' * S * R
biçiminde bir işlem yapılıyapılır. R' matrisi -t açısında göre döndürme işlemidir. Matrislerde döndürüldükten sonraki y boyutlandırmasında sy, x boyutlandırmasına sx, sin(t) yerine st, sin(-t) yerine -st, cos(t) ve cos(-t) yerine ct yazılırsa matris çarpımının sonucu,
M | = |
|
sx*ct*ct + sy*st*st | (sy-sx)*ct*st | 0 |
(sy-sx)*ct*st | sx*st*st + sy*ct*ct | 0 |
0 | 0 | 1 |
| |
|
Koordinat Sisitemleri Arasında Dönüşümler
Ötelenme
|
|
Boyutlandırma
|
|
Döndürme
|
|
X ve Y eksenlerinden oluşan koordinat sisteminde tanımşlı noktaların , X' ve Y' şeklinde başka bir koordinat sistemindeki değerlerini bulmak için çeşitli dönüşümler yapılır. Bir sistem, sadece orijin ötelenemesinden oluşuyorsa noktaların ters yönde ötelenmesi gerekir. Döndürme işlemi ve boyutlandırma işlemi için de aynı şekilde tersine dönüşümler yapılır.
Orijin P(xo,yo) noktasında bulunan, t kadar açıyla dönmü, sx ve sy kadar boyutlandırılmuş bir koordinat sistemi için önce 1/sx ve1/sy ile boyutlandırma, -x0 ve -y0 kadar öteleme, -t kadar da döndürme yapılmalıdır.
P'(x',y')=R(-t) * T(-x0,-y0) * S(1/sx,1/sy)