Doç. Dr. Cemil Öz
Bilgisayar Grafikleri
Ders 2: Koordinat
Sistemleri
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
3B matematik ve dönüşümler
2B Kartezyen koordinat sistemi
En bilinen iki boyutlu koordinat sistemi herkesin kullandığı
Kartezyen koordinat sistemidir. Kartezyen koordinat sistemi
şekil 4.1 de görüldüğü gibi bir çift birbirine dik eksenlerden
meydana gelir ve eksenler x ve y diye adlandırılırlar. Pozitif
x ekseni sağ, negatif x ekseni sol benzer şekilde pozitif y
ekseni yukarı yönde, negatif y ekseni aşağı yöndedir. Her
iki eksenin sıfır olduğu (x=0,y=0) nokta orijin olarak
nitelendirilir.
Teknik olarak ifade edilirse y ekseni
ordinat(ordinate), x ekseni ise absis(abscissa) olarak
adlandırılır.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2
İlave olarak Kartezyen koordinat sisteminde şekil 4.1 de
verilen QI, QII, QIII, ve QIV olarak isimlendirilen dört parça
vardır. Bu parçalar x-y eksenlerinin işaretlerine göre
isimlendirilmişlerdir. Tablo 4.1 de bu gösterilmiştir.
Kartezyen koordinat sistem
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
3
Tablo3.1 her bir bölümün işareti
Şonuç olarak, her hangi bir noktayı Kartezyen koordinat
sisteminde yerleştirmek için, x ve y bileşenlerinin bilinmesi
gerekir. Örneğin nokta p(5,3)’ ün anlamı x=5 ve y=3 dür, ve
şekil 4.2 de gösterildiği gibi görülür.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
4
Noktayı Kartezyen koordinat
sisteminde yerleştirme
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
5
2B Polar Koordinat Sistemi
Bir diğer koordinat sistemi 2 serbestlik derecesini
destekleyen polar koordinat sistemidir. Polar kordinat istemi
Wolfenstein oyunu ve ray-casting tekniğinin temelidir.
Polar koordinat sistemi noktanın x,y ciftleri yerine istenilen
mesafe ve yönelmedir. Şekil 4.3 standart 2B polar
koordinat sistemini vermektedir. Burada görüldüğü gibi, bir
noktayı yerleştirmek için iki parametre bulunmaktadır. r
orijin veya kutuptan uzaklık, ve bir yönelme veya açı(theta).
P(r,θ) gösterşiminin anlamı, p noktası, θ açısı veya radian,
bir referans ışına bağlı olarak ölçülür.Şekil 4.4 de
p1(10,30o) ve p2(6,1500) noktaları örnek olarak verilmiştir.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
6
2B polar koordinat sistemi
Noktaların 2B polar koordinat sisteminde
yerleştirilmesi
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
7
Kartezyen koordinat sistemi ile
2B polar koordinat sistemi
arasında dönüşüm
Kartezyen koordinat isteminden
polar koordinat sistemine dönüşüm,
biraz geometri bilinir ve dik üçgen
kullanılırsa kolayca dönüştürülebilir.
Şekil 4.5 e Kartezyen koordinatın I
bölümüne bakılırsa standart bir dik
üçgen
görülür.
Hipotenüsü
belirleyici olarak kabul edersek,
aşağıdaki fomül ile polar koordinat
sisteminden kartezyene dönüşüm
sağlanabilir.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
x=r*cos(θ)
y=r*sin(θ)
8
Kartezyen
koordinat
sisteminden polar koordinat
sistemine dönüşüm biraz
daha
karmaşık
görünmektedir. P(x,y) noktası
ile oluşturulan hipotenüsün
açısına ihtiyacımız vardır.
Trigonometri kullanılarak bu
problem çözülmektedir. Yani
tanjant açıyı bulmak için
kullanılabilir
ve
pisogor(pythagorean) teoremi
ile r bulunur.
kartezyen koordinat sisteminden polar
koordinat sistemine dönüştürme örneği
x2+y2 =r2
r = sqrt(x2 + y2)
θ= tan-1(y/x)
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
9
Şekil de verilen noktayı bir önceki verilen denklemleri
kullanarak polar koordinat sistemine dönüştürelim
x = 3, y = 4,
r = sqrt(32 + 42) = 5
θ= tan-1(4/3) = 53.1°
Sonuç olarak, polar koordinat sistemi, bir çok problemde
hedef belirleme, konum belirleme ve yörünge tayininde ileri
veya geri çevrimlerde önemlidir.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
10
3B koordinat sistemleri
İkiboyutlu koordinat sistemi konusunu yeterince inceledik. Bu
bölümde 3B koordinat sistemini inceleyeceğiz. Eğer oyun
programlama ve grafik işlemleri ile uğraşılmış ise bu sisteme
alışık olmamız gerekir. Bu bölümde ayrıca silindirik koordinat
sistemine ve küresel koordinat sistemine de yoğunlaşacağız.
Böylece daha sonraki konularda göreceğimiz, texture kaplama
ve bazı özel efektlerde bu koordinat sistemlerini kolayca
kullanabilelim. Önce 3B koordinat sistemi verilecek daha
sonrada diğer koordinat sistemlerine geçilecektir.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
11
3B Kartezyen koordinat sistemi
3B koordinat sistemi, birbirine dik 3 eksenden olşan 3 serbest
dereceli bir sistemdir. Yani iki boyutlu koordinat sistemine zekseninin ilavesi ile oluşmuştur. Bu yüzden bir noktanın 3B
uzayda yerleştirilmesi için üç koordinat değerine ihtiyaç
duyulmaktadır, x,y,z. İlave olarak üç eksen x-y düzlemi, x-z
düzlemi ve y-z düzlemi olmak üzere üç düzlem oluşturur.
Şekil 4.7 de bu düzlemler gösterilmiştir. Bu düzlemler çok
önemlidir ve her biri iki yarı düzleme ayrılır. Sekiz tane ara
düzlem(eight octants) vardır ve şekil 4.8 de gösterilmiştir.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
12
3Bkartezyen koordinat sistemi
3B Kartezyen koordinat sisteminin ara
düzlemleri
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
13
Burada yeni ilave edilen z ekseni küçük bir problem oluşturmaktadır. Z
eksenini negatif veya pozitif olmasına göre iki farklı yönelme belirlemeliyiz.
Bu yüzden 3B Kartezyen koordinat sisteminde sağ el ve sol el olmak üzere
iki bölge vardır.
Sol el sistemi
Sol el sistemi şekil 4.9 da gösterilmiştir. Sol el sisteminde 3B koordinat sistemine
doğruca bakarsak pozitif z-ekseni kağıda doğrudur veya ekranı x-y yi ekranın
yatay veya dikey ekseni olarak kabul edersek ekrana doğrudur.
Sağ el sistemi
Sağ el sistemi şekil 4.10 da verilmiştir. Bu sistemde pozitif z ekseni, eğer doğruca
eksene bakılıyorsa bize doğrudur ve negatif z-ekseni kağıda doğrudur. Eğer biz
ekranı x-y olarak daha önce olduğu gibi kabul edersek o zaman negatif z-ekseni
ekrana doğru, pozitif z-ekseni ekrandan dışarıya doğrudur.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
14
sağ el sistemi
sol el sistemi
Biz bu kitapdaki yapılan işlemlerde genellikle 3B Kartezyen koordinat sistemini
kullanacağız. Bazen problemlerin çözümünde açı ve yönlerin kullanılması bu özel
problemlerin çözümünü kolaylaştırabilir. 3B kameralar buna bir örnektir. Bu yüzden diğer
koordinat sistemlerine de kısaca değinilecektir.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
15
3B silindirik koordinat sistemi
İlginçtir ki, 2B koordinat sisteminde yalnızca polar koordinat sistemi olmasına
rağmen 3B de küresel ve silindirik koordinat sistemi mevcuttur. Çünkü bir fazla
serbestlik derecesi eklenmiştir. Bu durumda, diğer iki serbestlik derecesini
arzuladığımız gibi kullanabiliriz. 3B silindirik koordinat sistemi 2B polar sisteme
daha yakındır. Yani, 2b x-y polar sistemine z-ekseninin eklenmesinden başka bir
şey değildir.
Şekil 4.11’e bakacak olursak, silindirik
koordinat sistemi görülür. Eğer dikkat
edilirse, z=0 düzlemin de 2B polar
sistem elde edilir ve silindirik koordinat
sisteminde önce 2B (x-y ekseninde z=0
iken, p(r,θ) noktası eklenir sonra da zekseninde bir z değeri kadar yükseltilir.
Aynı zamanda sağ-el sistemi kullanılır.
silindirik koordinat sistemi
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
16
3B Kartezyen koordinat ile polar koordinat sistemi arasında dönüştüme
3B Kartezyen koordinat ile silindirik koordinat sistemi arasındaki dönüştürme
sıradandır. Yani 2B dönüşüm ve sonra z=z eklenir. 3B polar koordinat sistemin
p(r,θ,z) den, Kartezyen koordinat sistemi p(x,y,z) ne dönüşüm
x = r*cos(θ)
y = r*sin(θ)
z=z
Formülü ile gerçekleştirilir.
Kartezyen koordinat sisteminden, silindirik koordinat sistemine dönüştürmede, önce
2B Kartezyen den polar sisteme dönüşüm yapılır ve z=z eklenir. 3B Kartezyen
koordinat sistemi p(x,y,z) den, polar koordinat sistemi p(r,θ,z) ne dönüştürmek için
x2 + y2 = r2
r = sqrt(x2 + y2)
θ = tan-1(y/x)
z =z
Silindirik koordinat sistemi çok sayıda problem için kullanışlıdır. Çevre haritalamak
için kamera kontrolü.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
17
3B küresel koordinat sistemi
3B küresel koordinat sistemi, diğer koordinat sistemlerinden biraz daha karmaşıktır.
Genel olarak, bir nokta, sistemin orijininden bir mesafe ve iki açı ile belirlenir. Şekil
4.12 küresel koordinat sistemini göstermektedir. Küresel koordinat sisteminde bir
nokta orijinden bir mesafe ve iki açıya ihtiyacımız var. Bu p(ρ,ϕ,θ) şeklinde ifade
edilir yani, “rho,” “phi,” and “theta,”
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
18
EQUATION 4.5 Converting 3D Spherical Coordinates p(ρ,φ,θ) to
Cartesian Coordinates
p(x,y,z)
From the projection of the line segment o->p onto the x-y plane, we see
that:
r = ρ*sin(φ)
z = ρ*cos(φ)
and in the x-y plane, we know that:
x = r*cos(θ)
y = r*sin(θ)
Therefore, substituting r into x,y and collecting equations gives:
x = ρ*sin(φ)*cos(θ)
y = ρ*sin(φ)*sin(θ)
z = ρ*cos(φ)
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
19
EQUATION 4.6 Converting 3D Cartesian Coordinates p(x,y,z) to Spherical
Coordinates
p(ρ,φ,θ)
Given: x2 + y2 + z2= ρ2
Similarly: x2 + y2 = r2
Therefore:
r = sqrt(x2 + y2)
ρ = sqrt(x2 + y2 + z2)
θ = tan-1(y/x)
And we can solve for φ after we have r and ρ from the relationship:
r = ρ*sin(φ)
Solving for φ gives:
φ = sin-1(r/ρ)
Also, we can use:
z = ρ*cos(φ)
Therefore:
φ = cos-1(z/ρ)
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
20
Download

2B Polar Koordinat Sistemi