Tabanı değiştirirken bir noktanın afin koordinatlarının dönüşümü. Homojen koordinatlar kullanılarak afin dönüşümler

Koordinat Dönüşüm Problemişu şekildedir: eski sistemdeki yeni orijin ve yeni koordinat vektörlerinin koordinatlarını bilmek:

, , , (3)

koordinatları ifade et x,y puan M eski koordinat sisteminde koordinatlar aracılığıyla Yeni sistemde bu nokta.

Formül (3)'ten şu sonuç çıkıyor:

; ; . (4)

(Üçgen kuralına göre).

Çünkü , , daha sonra noktanın koordinatlarının tanımına göre , yani ; .

Daha sonra formül (4)'ü kullanarak şunu elde ederiz:

nerede buluyoruz:

(5)
;

Koordinatlar bu şekilde ifade edilir x,y keyfi nokta M eski sistemde koordinatları aracılığıyla yeni sistemde .

Formüller (5) denir afin koordinat sistemini dönüştürmek için formüller.

Katsayılar - eski sistemdeki yeni vektörün koordinatları; katsayılar, eski sistemdeki yeni vektörün koordinatları, serbest terimler, eski sistemdeki yeni orijinin koordinatlarıdır:

Nokta koordinatları M

yeni sistemde

X
en
=
=
+
+
+
+

Masa tabandan tabana geçiş matrisi denir.

Afin dönüşümün özel durumları

Koordinat sistemleri

1. Başlangıç ​​transferi.

Bu dönüşümle , , A (Şek. 40).

Eski sistemdeki vektörlerin koordinatlarını bulalım, yani. , , Ve :

Þ Þ , ;

Þ Þ , .

Daha sonra formüller (5) şu şekli alacaktır:

HAKKINDA"
Pirinç. 40
(7)

Formüller (7) denir Koordinat vektörlerini değiştirme formülleri.

Vektörler arasındaki yönlü açı kavramı.

Dikdörtgen koordinat sistemini dönüştürme

Yönlendirilmiş bir düzlemde vektörler arasındaki yönlü açı kavramı tanıtılmıştır.

Belirli bir sırada belirtilmiş sıfırdan farklı vektörler olsun ve olsun ( - birinci vektör, - ikinci vektör).

Eğer || , O vektör ve vektör arasındaki yön açısı isminde

büyüklük , eğer temelse, - sağ;

büyüklük , eğer temel kalırsa.

Eğer , O yön açısı eğer aralarında eşit kabul edilirse , ardından (Şek. 42).


İki dikdörtgen Kartezyen koordinat sistemini düşünün ve . İzin vermek M(x;y) V, V . Dikdörtgen koordinat sistemi afin koordinat sisteminin özel bir durumu olduğundan, §12'deki formülleri (5) kullanabiliriz, ancak katsayılar , , , artık keyfi olamaz.

Eski sistemdeki vektörlerin koordinatlarını bulalım. İki durumu ele alalım.

1) Tabanlar ve , aynı yöndedir (Şekil 43).

1
A
İÇİNDE
B1
HAKKINDA"
Pirinç. 44
A
A

Sağ Üçgenler Ve hipotenüs ve dar açı eşit (
, ), buradan, Ve .

İtibaren şunu buluyoruz:

Buradan, .

Buradan, . Daha sonra formüller (5) şu şekli alacaktır:

Tabandan tabana geçiş matrisinin determinantının,

.

2) Tabanlar ve , zıt yönlüdür (Şek. 45).

HAKKINDA
HAKKINDA"
Pirinç. 45

HAKKINDA
HAKKINDA"
İÇİNDE
B1
A
1
A
Pirinç. 46
İzin vermek . Vektörleri ortak bir kökene getirelim HAKKINDA(Şek. 46).

Durum 1)'e benzer şekilde akıl yürüterek şunu elde ederiz:

Buradan, ; .

Daha sonra formüller (5) şu şekli alacaktır:

Bu durumda tabandan tabana geçiş matrisinin determinantının olduğuna dikkat edin.

Formüller (8) ve (9) birleştirilebilir:

, Nerede

.

Özel dönüşüm durumları

Dikdörtgen koordinat sistemi

1. Başlangıcın transferi: , .

Kutupsal koordinatlar

Bir düzlemdeki noktaların sıralı gerçek sayı çiftleri kullanılarak belirlenebileceği bir kural belirtilirse, düzlemde bir koordinat sisteminin belirtildiğini söylerler. §10'da tartışılan afin koordinat sistemine ek olarak, matematikte sıklıkla düzlem üzerindeki kutupsal koordinat sistemi kullanılır.

Kutupsal koordinat sistemi yönlendirilmiş bir düzlemde tanıtılmıştır.

Bir noktadan oluşan çift HAKKINDA ve birim vektör denir kutupsal koordinat sistemi ve belirlenmiş veya . Yönlü düz isminde kutup ekseni, nokta HAKKINDA- kutup(Şek. 48).

Böylece, . Eğer M ile çakışıyor HAKKINDA, O . Herhangi bir nokta için M kutup yarıçapı

Eğer M kutupla çakışıyor HAKKINDA ise j tanımsızdır. Vektörler arasındaki yön açısının tanımından (bkz. §13) kutup açısının şu şekilde olduğu anlaşılmaktadır:

R
Pirinç. 51
M
J
M1

Kutupsal koordinatlardan dikdörtgen Kartezyen koordinatlara ve tersi yönde geçiş için formüller türetelim.

Yönlendirilmiş bir düzlemde kutupsal bir koordinat sistemi olsun, , V. Kutup sistemine, taban sağ yönlü olacak şekilde vektöre dik bir birim vektör ekleyelim (Şekil 51).

, .

İzin vermek M(x;y) V. Daha sonra ; (Şek. 51).

Kabul edilmiş Kutupsal koordinatlardan dikdörtgen koordinatlara geçiş için formüller:

Bu eşitliklerin her iki tarafının karesini alalım ve şunu ekleyelim:

, Neresi (kök “+” işaretiyle alınır, çünkü ). Þ Þ
;
.

A
HAKKINDA
V
Pirinç. 52
Yorum . Dikdörtgen Kartezyen koordinatlardan kutupsal koordinatlara geçişi içeren problemleri çözerken, yalnızca bulmak yeterli değildir. ya da sadece , Çünkü Bir trigonometrik fonksiyondan kutup açısını kesin olarak belirlemek imkansızdır: aralıkta aynı kosinüslere sahip iki açı vardır (aynı sinüslere sahip iki açı) (Şekil 52). Bu nedenle j kutup açısını ancak aynı anda hesaplarsanız doğru şekilde bulabilirsiniz. Ve .

M 1 =(x 1,y 1), M=(x,y). M noktası M 0 M 1 parçasını λ'ya göre böldüğü için, o zaman

; (1)

Bu afin dönüşümle M 0,M 1,M noktaları, M 0,M 1,M noktalarıyla aynı koordinatlarda, ancak yalnızca O" noktasındaki M 0 ′, M 1 ′, M′ noktalarına gidecektir. e koordinat sistemi " 1 e" 2. Bu koordinatlar hala ilişkiler (1) ile bağlantılıdır, bundan M''nin M 0 ′M 1 ′ parçasını λ'ya göre böldüğü sonucu çıkar. Bu teoremi kanıtlar.

3. Afin dönüşümlerin analitik ifadesi (geçiş formülleri).

Görev: Bir sistemin diğerine göre parametrelerini bilerek, her iki koordinat sistemindeki bir noktanın konumu nasıl belirlenebilir (yani, bir sistemden (eski) başka bir yeni sisteme geçiş için formüllerin nasıl bulunacağı).

Afin koordinat sistemleri için dönüşüm durumlarını ele alalım.

1) R=(O, (e 1, e 2)) sistemi verilsin ve içinde M=(x,y) R verilsin, orijinin koordinatları O(0,0) R olsun. e 1 (1,0) R, e 2 (0,1) R – temel vektörlerin koordinatları.

2) İkinci koordinat sistemi R′=(O, (e 1 ′, e 2 ′)) verilsin ve eski koordinat sistemi üzerinden koordinatların yeni tabanını ve yeni kökenini tanımlayan parametreler bilinsin, yani. O′(x 0 ,y 0) R , e 1 ′(C 11 ,C 12) R , e 2 ′(C 12 ,C 22) R

Yeni koordinat sisteminde (M(x′,y′) R′) M noktasının koordinatlarını bulma görevini belirleyelim. M(x′,y′) noktasının bilinmeyen koordinatlarını gösterelim.

O,O′,M üç noktası için: O′M=O′O +OM. О′М – yeni koordinat sisteminde M noktasının yarıçap vektörü; bu, koordinatlarının R′ sistemindeki О′М vektörünün koordinatlarıyla çakışacağı anlamına gelir (О′М↔М R ′)=>О′М( x′,y′) R ′ => О′М=x′e 1 ′+y′e 2 ′ (1) ; О′О - R′ sistemindeki О′ noktasının yarıçap vektörü, yani. koordinatları О′О↔ О′ R => О′О(x 0 ,y 0) R => О′О= x 0 e 1 +y 0 e 2 koordinatlarıyla çakışacaktır. (2) ; OM↔ M R => OM=xe 1 +ye 2 (3). O. О′М=ОМ −ОО′ vektörü bu vektöre değiştirildikten sonra genişleme eşitliği (1), (2) ve (3) şu şekilde olacaktır:

x′e 1 ′+y′e 2 ′= xe 1 +ye 2 −(x 0 e 1 +y 0 e 2) (4); Çünkü eski taban üzerinden yeni taban vektörlerin koordinatlarını belirleyen parametrelerin belirtilmesi durumunda, yeni taban vektörler için aşağıdaki vektör eşitliklerini elde ederiz:

e 1 ′(C 11,C 12) R => e 1 ′= C 11 e 1 +C 21 e 2;

e 2 ′(C 12,C 22) R => e 2 ′= C 12 e 1 +C 22 e 2; (5)

(4)'ün sol tarafına (5)'i koyalım ve e 1 ve e 2 temel vektörlerine göre gruplayalım.

x′(C 11 e 1 +C 21 e 2)+y′(C 12 e 1 +C 22 e 2)- xe 1 -xe 2 +x 0 e 1 -ye 2 +x 0 e 1 +y 0 e 2 =0.
(x′C 11 + y′C 12 e 1 -x+x 0)e 1 + (x′C 21 +y′ C 22 -y+y 0)e 2 =0.

Çünkü (e 1, e 2) bir temel oluşturduğunda, bu, sol taraftaki tüm katsayıların sıfıra eşit olması koşuluyla son vektör eşitliğinin sağlandığı doğrusal olarak bağımsız bir sistemdir, yani. buna göre

(6);

(6) - x′ ve y′ değişkenleri için eski R sisteminden yeni R′ sistemine geçiş formülleri.

Determinantın sütunları e 1 ' ve e 2 ' temel vektörlerinin koordinatları olduğundan, bu determinant asla kaybolmaz, yani. Sistem (6), x' ve y' değişkenlerine göre benzersiz bir şekilde çözülebilir; bu, her zaman R''den R'ye ters geçiş için bir formül bulmayı sağlar.

Formül (6) için iki özel durum vardır

1. bazın değiştirilmesi;

2. başlangıcın transferi.

1. R' sisteminden elde edilen R' sistemi, aynı orijini korurken bazın değiştirilmesiyle elde edilir R=(O, (e 1 , e 2))→ R'=(O, (e 1 ′, e 2 ′)), t .e. O′(x 0 ,y 0)=O(0,0)=>x 0 =y 0 =0 ise, temel değiştirme formülleri şu formu alacaktır:

(7)

2. Aynı temeli koruyarak başlangıcı O noktasından O' noktasına aktararak R' sistemi R'den elde edilsin:
R=(O, (e 1, e 2))→ R′=(O′, (e 1, e 2))=> e 1 ′(1.0), e 2 ′(0.1),t .O. formüller şeklini alacaktır.

İngilizce: Vikipedi siteyi daha güvenli hale getiriyor. Gelecekte Wikipedia'ya bağlanamayacak eski bir web tarayıcısı kullanıyorsunuz. Lütfen cihazınızı güncelleyin veya BT yöneticinizle iletişime geçin.

中文: The以下提供更长,更具技术性的更新(仅英语)。

İspanyol: Vikipedi daha güvenli bir sitedir. Bu, gelecekte Vikipedi'ye bağlanamayacak bir web gezgini olarak kullanılıyor. Cihazınızı kullanın veya yöneticinizle iletişime geçin. Daha fazlası, İngilizce olarak daha büyük ve daha fazla teknik gerçekleştirmeyi içeriyor.

ﺎﻠﻋﺮﺒﻳﺓ: ويكيبيديا تسعى لتأمين الموقع أكثر من ذي قبل. أنت تستخدم متصفح وب قديم لن يتمكن من الاتصال بموقع ويكيبيديا في المستقبل. يرجى تحديث جهازك أو الاتصال بغداري تقنية المعلومات الخاص بك. يوجد تحديث فني أطول ومغرق في التقنية باللغة الإنجليزية تاليا.

Fransızca: Vikipedi sitenin güvenliğini artırır. Vikipedi'ye bağlandıktan sonra eski bir web gezintisi kullanabilirsiniz. Günlük cihazınıza yardım edin veya yöneticinizin bu konuda bilgilendirilmesi için iletişime geçin. Ek bilgiler, teknikler ve İngilizce olarak mevcuttur.

日本語: ????

Almanca: Wikipedia erhöht die Sicherheit der Webseite. Başka bir Web tarayıcısı kullanarak Vikipedi'ye başka bir erişim sağlayamazsınız. Cihazda güncel bilgiler veya BT Yöneticisi olarak tanımlanmış bir özellik var. Ausführlichere (ve teknik ayrıntılar) Hinweise, İngilizce Sprache'de Du unten'i buluyor.

İtalyan: Vikipedi güvenli bir şekilde saklanıyor. Gelecekte Vikipedi'ye bağlanmak için bir web tarayıcısı kullanmaya devam edin. Lütfen, bilgisayarınızı kullanın veya bilgi işlem yöneticisiyle iletişime geçin. Basta daha fazla bilgi, İngilizcede daha ayrıntılı ve teknik olarak kullanılabilir.

Macar: Vikipedi'de Biztonságosabb var. Bir böngésző, amit használsz, ne lesz képes kapcsolódni a jövőben. Modern çağın gerisinde kalan ve yenilenen parçalarda sorun var. Alább olvashatod ve részletesebb magyarázatot (engölül).

- Svenska: Wikipedia gör sidan mer saker. Vikipedi'ye ve çerçeveye göz atmak için bir web sitesine göz atabilirsiniz. BT yöneticisiyle güncelleyin veya iletişim kurun. Bunlar, uzun süredir devam eden ve teknik olarak yabancı dille ilgili olanlardır.

हिन्दी: विकिपीडिया साइट को और अधिक सुरक्षित बना रहा है। आप एक पुराने वेब ब्राउज़र का उपयोग कर रहे हैं जो भविष्य में विकिपीडिया से कनेक्ट नहीं हो पाएगा। कृपया अपना डिवाइस अपडेट करें या अपने आईटी व्यवस्थापक से संपर्क करें। नीचे अंग्रेजी में एक लंबा और अधिक तकनीकी अद्यतन है।

Tarayıcı yazılımınızın sitelerimize bağlanmak için kullandığı, özellikle TLSv1.0 ve TLSv1.1 gibi güvenli olmayan TLS protokolü sürümlerine yönelik desteği kaldırıyoruz. Buna genellikle güncel olmayan tarayıcılar veya eski Android akıllı telefonlar neden olur. Veya bağlantı güvenliğini düşüren kurumsal veya kişisel "Web Güvenliği" yazılımının müdahalesi olabilir.

Sitelerimize erişebilmek için web tarayıcınızı yükseltmeniz veya bu sorunu başka bir şekilde düzeltmeniz gerekir. Bu mesaj 1 Ocak 2020 tarihine kadar kalacaktır. Bu tarihten sonra tarayıcınız sunucularımızla bağlantı kuramayacaktır.

Homojen koordinatlarda herhangi bir ölçek faktörü için bir nokta yazılır. Ayrıca bir noktaya homojen koordinatlarla temsil edilirse iki boyutlu Kartezyen koordinatları ve olarak bulunabilir.

Homojen koordinatların geometrik anlamı aşağıdaki gibidir (Şekil 6). bir çizgi üzerinde rastgele nokta

Pirinç. 6. Homojen koordinatların geometrik yorumu

Böylece, (x, y) koordinatlarına sahip üretken nokta ile (W×x, W×y, W), W≠0 biçimindeki üçlü sayı kümesi arasında bire bir yazışma kurulur; W×x, W×y, W sayılarını bu noktanın yeni koordinatlarını dikkate almamız gerekir. Dolayısıyla, homojen koordinatlar, W faktörüyle ölçeklenen iki boyutlu bir düzlemin, üç boyutlu uzayda z = W (burada z = 1) düzlemine yerleştirilmesi olarak temsil edilebilir.

Homojen koordinatların kullanılması, en basit problemleri çözerken bile kullanışlıdır.

Görüntüleme cihazı yalnızca tamsayılarla çalışıyorsa (veya yalnızca tamsayılarla çalışmak gerekiyorsa), bu durumda keyfi bir W değeri için (örneğin, W=1), tek biçimli koordinatlara (0,5; 0,1; 2,5) sahip bir nokta olamaz. temsil edildi. Ancak makul bir W seçimi ile bu noktanın koordinatlarının tam sayı olmasını sağlamak mümkündür. Özellikle, söz konusu örnek için W=10 ile elimizde (5; 1; 25) bulunur.

Başka bir vaka. Dönüşüm sonuçlarının aritmetik taşmaya yol açmasını önlemek için koordinatları (80000; 40000; 1000) olan bir nokta için örneğin W=0,001 alabilirsiniz. Sonuç olarak (80; 40; 1) elde ederiz.

Bununla birlikte, homojen koordinatların ana uygulaması geometrik dönüşümlerdir, çünkü homojen koordinatların üçlüleri ve üçüncü dereceden matrislerin yardımıyla düzlemdeki herhangi bir afin dönüşüm tanımlanabilir. Benzer şekilde, dörtlü homojen koordinatları ve dördüncü dereceden matrisleri kullanarak, üç boyutlu uzaydaki herhangi bir dönüşümü tanımlayabilirsiniz.

Bilindiği gibi matris formunda öteleme, ölçeklendirme ve döndürme dönüşümleri şu şekilde yazılır:

P' = P × S;

Çeviri, ölçeklendirme ve döndürmeden (çarpma kullanılarak) ayrı olarak (toplama kullanılarak) uygulanır. Noktaları homojen koordinatlarda ifade edersek, her üç dönüşüm de çarpma kullanılarak gerçekleştirilebilir. Burada 2 boyutlu dönüşümlere bakacağız.

Taşıma denklemleri homojen koordinatların dönüşüm matrisi formunda aşağıdaki gibi yazılır:

P' = P × T(dx, dy),

.

Bazen bu tür ifadeler şu şekilde yazılır:

Örneğin çift noktalı çeviriyi düşünün. P noktasını (dx1, dy1) uzaklıktaki P' noktasına ve ardından (dx2, dу2) mesafesindeki P'' noktasına taşımak gerekli olsun. Toplam transfer mesafeye eşit olmalıdır (dх1+d2, dу1+dу2). Verileri forma yazalım

P’ = P × T (dx1, dy1);

P'' = P' × T (dx2, dy2).

İlk formülü ikinciyle değiştirirsek, şunu elde ederiz:

P’’ = P × (T (dx1, dy1) × T (dx2, dy2)).

Matris çarpımı T (dx1, dy1) ∙ T (dx2, dy2) şöyledir:

Dolayısıyla ortaya çıkan transfer (dx1+dx2, dy1+dy2), yani ardışık taşımalar katkı maddesidir.

Homojen koordinatlar kullanılarak matris formundaki ölçeklendirme denklemleri şu şekilde yazılır:

,

.

P' = P' × S(Sx, Sy).

Matris çarpımı S(Sx1, Sy1) × S(Sx2, Sy2) şöyledir:

Dolayısıyla ardışık ölçeklendirmeler çarpımsaldır.

Son olarak, dönme denklemi (sağ elini kullanan bir sistemde) şu şekilde temsil edilebilir:

.

Ardışık rotasyonlar eklenir.

Homojen koordinatlar kullanılarak 2 boyutlu dönüşümlerin bileşimi. Matris çarpımı farklı durumlarda çağrılır birleşme, bağlantı, birleştirme Ve kompozisyon. Listelenen terimlerin sonuncusunu kullanacağız.

Örneğin bir nesnenin herhangi bir P1 noktasına göre dönüşünü düşünün. Sadece orijin etrafında dönmeyi bildiğimiz için orijinal problemi üç alt probleme ayırıyoruz:

P1 noktasının orijine taşındığı öteleme;

Dönüş;

Orijinden gelen bir noktanın orijinal konumu P1'e döndürüldüğü bir öteleme.

Bu dönüşümlerin sırası Şekil 2'de gösterilmektedir. 7.1.

Pirinç. 7.1. Bir nesneyi rastgele bir nokta etrafında döndürme

Ortaya çıkan dönüşüm şuna benziyor

Benzer bir yaklaşım kullanarak, bir nesneyi rastgele bir P1 noktasına göre ölçeklendirebilirsiniz: P1'i orijine taşıyın, ölçeklendirin, tekrar P1 noktasına taşıyın. Bu durumda ortaya çıkan dönüşüm şöyle görünecek

Daha karmaşık bir dönüşümü ele alalım. Bir nesneyi istenen konuma (Şekil 7.2'deki ev) ölçeklendirmemiz, döndürmemiz ve konumlandırmamız gerektiğini varsayalım; burada dönme ve ölçeklendirme merkezi P1 noktasıdır.

Pirinç. 7.2. dönüşüm sırası örneği

Dönüşüm dizisi, P1 noktasının orijine taşınması, ölçeklenmesi ve döndürülmesi ve ardından orijinden yeni bir P2 konumuna hareket edilmesinden oluşur. Bu dönüşümü içeren uygulama programı veri yapısı ölçek faktörünü/faktörlerini, dönüş açısını ve öteleme miktarlarını içerebilir veya elde edilen dönüşüm matrisi şu şekilde yazılabilir:

T (-x1, -y1) × S (Sx, Sy) × R (A) × T (x2, y2).

Genel olarak matris çarpımı değişmeli değildir. M1 ve M2 temel ötelemeyi, ölçeklendirmeyi veya döndürmeyi temsil ediyorsa, değişme özelliği aşağıdaki özel durumlarda geçerlidir:

M1 M2
Ölçeklendirmeyi Çevirme Ölçeklendirmeyi Döndürme (Sx=Sy'de) Çevir Yakınlaştır Döndür Döndür

R, S ve T işlemlerinden oluşan en genel formun bileşimi şu matrise sahiptir:

Üstteki 2 × 2 kısmı, birleşik döndürme ve ölçeklendirme matrisidir; tx ve ty ise net ötelemeyi tanımlar. P∙M'yi bir vektör ile 3 × 3'lük bir matrisin çarpımı olarak hesaplamak için 9 çarpma işlemi ve 6 toplama işlemi gereklidir. Genelleştirilmiş matrisin son sütununun yapısı, gerçekleştirilen fiili eylemleri basitleştirmemize olanak tanır.

Öncelikle dönüşümlerin ne olduğunu tanımlayalım. Diyelim ki bir modelimiz var (basitlik açısından üçgen olsun). Ve üç koordinat alanı: nesne (bu üçgenin tanımlandığı yer), dünya ve kamera alanı. Dolayısıyla dönüşüm, bir koordinat sisteminde (nesne) bulunan bir nesnenin koordinatlarının, başka bir koordinat sisteminin (önce dünya, sonra oda) koordinatlarını kullanarak ifadesidir.

Daha önce de yazdığım gibi farklı koordinat uzaylarını kullanmak sanal bir dünya yaratmayı kolaylaştırıyor. Nesneler nesne uzayında yaratılır ve her nesnenin kendi koordinat uzayı vardır. Dünya alanı, sanal dünyanın tüm nesnelerini birbirine bağlar ve çok zor şeyleri (örneğin, hareketli nesneler) çok basit hale getirmenize olanak tanır. Sahne oluşturulduktan ve tüm nesneler taşındıktan sonra dünya koordinatları kamera koordinat alanına dönüştürülür. Yalnızca bir kamera kullanacağız ancak gerçek hayatta birden fazla kamera oluşturmak mümkündür. Örneğin muhteşem Earth 2150: Escape from the blue planet oyununda birkaç kamera kullanıldı.

Peki neden bahsediyorum: Çoklu koordinat uzaylarını kullanmak için dönüşümler gereklidir.

Öncelikle vektörlerle ilgili bir şeyi hatırlayalım. Aşağıdaki şekil bu konuda bize yardımcı olacaktır:

Burada ne görüyoruz: x, y, z eksenlerinin oluşturduğu dünya koordinat uzayı. Birim vektörler Ben, J, k dünya koordinat uzayının birim vektörleri veya temel vektörleri olarak adlandırılır. Bu vektörlerin toplamını kullanarak dünya koordinat uzayındaki herhangi bir vektörü elde edebilirsiniz.

v- dünya koordinatlarının kökenini ve nesne koordinatlarının kökenini birbirine bağlayan bir vektör. v vektörünün uzunluğu, dünya koordinatlarının orijini ile nesne koordinatlarının orijini arasındaki mesafeye eşittir. Vektör formunu düşünün v=(5,2,5):

v=x* Ben+ evet* J+ z* k = 5*Ben + 2*J + 5*k

Yukarıda yazdığım gibi, temel vektörlerin yardımıyla belirli bir uzayın herhangi bir noktasını (vektörünü) temsil edebilirsiniz, bu denklemin gösterdiği de budur.

Vektörler P,Q,R- nesne uzayının temel vektörleri. Lütfen şunu unutmayın Ben,J,k mutlaka eşit olmayacak P,Q,R.

Bu şekilde bazı ayrıntıları atladım: nesne koordinat uzayında bir üçgen oluşturan üç nokta belirtilmiştir. Ayrıca üçgene yönlendirilen kamerayı belirtmedim.

Matrisleri kullanarak doğrusal koordinat dönüşümleri

Öncelikle birim vektörlere bakalım Ben,J,k yönünde dünya uzayının koordinat eksenleriyle çakışan ve birim vektörler veya dünya uzayının temel vektörleri olarak adlandırılan.

Bu vektörleri koordinat formunda matris olarak yazalım:

Ben= [ ben x ben y ben z ] = [ 1 0 0 ] J= [ j x j y j z ] = [ 0 1 0 ] k= [ k x k y k z ] = [ 0 0 0 ]

Burada vektörler 1x3'lük matrislerle (satır matrisleri) temsil edilir.

Bu temel vektörleri tek bir matris kullanarak yazabiliriz:

Hatta daha da önemlisi bu vektörleri şu şekilde yazabiliriz:

Gördüğünüz gibi sonuç 3x3 veya 4x4 boyutunda bir birim matristir.

Görünüşe göre bunda yanlış olan ne? Bir düşünün, uzayın bazı aptal temel vektörlerini tek bir matriste yazmanın mümkün olduğunu. Ama hayır, “düşünmeyeceksiniz”!!! 3D programlamanın en korkunç sırlarından biri burada saklıdır.

Yukarıda yazdığım gibi sanal dünyada bulunan herhangi bir nokta vektör formunda yazılabilir:

v=x* Ben+ evet* J+ z* k

Nerede v- uzaydaki nokta, x,y,z - noktanın koordinatları v, A Ben,J,k- uzayın temel vektörleri. Burada bir noktadan bahsettiğimize dikkat edin ama bir vektöre bakıyoruz. Umarım bir vektör ile bir noktanın aslında aynı şey olduğunu hatırlarsınız.

Yukarıdaki formüle bir vektörün vektör formu denir. Başka bir isim daha var - vektörlerin doğrusal birleşimi. Bu arada bu doğru.

Şimdi vektöre tekrar bakalım v. Bunu bir satır matrisine yazalım: v = [ 5 2 5 ]

Vektör uzunluğunun v dünya koordinat uzayının başlangıcından nesne koordinat uzayının başlangıcına kadar olan mesafedir.

Bu vektörü, dünya uzayının temel vektörlerinin yazılı olduğu bir matrisle çarpmaya çalışalım (umarım matris çarpım formülünü hatırlıyorsunuzdur):

Sonuç olarak aşağıdaki denklemi elde ederiz:

v M = [ (xi x + yj x + zk x) (xi y + yj y + zk y) (xi z +yj z + zk z) ]

Bir vektörümüz var. Onlar. Bir vektörün bir matrisle çarpılmasının sonucu bir vektördür. Bu durumda vektör değişmemiştir. Ancak matrisin elemanları birler (ana köşegen üzerinde) ve sıfırlar (diğer tüm elemanlar) değil de başka sayılar ise, o zaman vektör değişecektir. Dolayısıyla M matrisinin koordinat uzaylarının dönüşümünü gerçekleştirdiğini söyleyebiliriz. Genel formülü düşünün:

a, b vektörlerdir, M koordinat uzaylarının dönüşüm matrisidir. Formül şu şekilde okunabilir: “M matrisi a noktasını b noktasına dönüştürür.”

Açıklık sağlamak için bir örneğe bakalım. Koordinatları nesne uzayından (p,q) dünya uzayına (i,j) dönüştürmemiz gerekiyor:

Ben,J- dünya uzayının temel vektörleri, P,Q- nesne uzayının temel vektörleri. Resimde nesne koordinat alanının z ekseni etrafında -45 derece döndürüldüğünü görebilirsiniz (resimde görülmemektedir). Ayrıca vektörler Q,P 1,5 kat daha fazla vektör Ben,J bu da nesne uzayında tanımlanan nesnelerin dünya uzayında bir buçuk kat daha küçük görüneceği anlamına geliyor.

Nesne uzayı modelinin dönüşümden sonra nasıl görüneceğini görselleştirmek için vektörler için bir çerçeve ekleyebilirsiniz. Ben,J:

Aynı çerçeveyi siz de çizebilirsiniz. P,Q ama çizimi karıştırmadım.

Şimdi nesne uzayında bir üçgen çizdiğimizi varsayalım (Şekil a). Dünya uzayında bu üçgen 45 derece döndürülecek ve üçte bir oranında küçültülecektir (Şekil b):

Şimdi bulmacanın tüm unsurlarını toplayalım: bildiğimiz gibi dönüşüm bir matris kullanılarak yapılabilir. Matrislerin satırları temel vektörlerdir. Dünya koordinat uzayının temel vektörlerinin nesne uzayındaki koordinatları aşağıdaki gibidir:

Ben = [ 0.473 0.473 ] J = [ -0.473 0.473 ]

Koordinatları nasıl bulduk? Öncelikle koordinat uzaylarının birbirine göre 45 derece döndürüldüğünü biliyoruz. İkincisi, nesne uzayı temel vektörleri, dünya uzayı temel vektörlerinden 1,5 kat daha uzundur. Bunu bilerek vektörlerin koordinatlarını kolayca hesapladık Ben,J.

Sonuç olarak, aşağıdaki dönüşüm matrisini elde ederiz (bu durumda döndürme veya döndürme):

Veya üç boyutlu uzayda:

Tüm değerler yaklaşık değerlerdir.

Bu, koordinatları nesne uzayından eylemsiz uzaya dönüştürmek için bir matristir (Size eylemsizlik uzayının temel vektörlerinin dünya uzayının temel vektörleriyle örtüştüğünü hatırlatırım). Bir üçgeni nesne uzayından eylemsizlik uzayına dönüştürmek için üçgenin tüm noktalarını (vektörlerini) dönüşüm matrisiyle çarpmanız gerekir.

Son örnekte iki dönüşümle karşılaştık: döndürme ve ölçeklendirme. Bu dönüşümlerin her ikisi de doğrusaldır.

Artık doğrusal dönüşüm örneklerine baktığımıza göre tanımı öğrenebiliriz:

Doğrusal dönüşümler, uzayları bozmayan koordinat dönüşümleridir. Onlar. tüm paralel çizgiler paralel kalır (ancak bir istisna vardır). Veya oldukça basit: Doğrusal dönüşümlerle bir üçgen asla daireye veya kareye dönüşmez, daima üçgen olarak kalır.

Artık doğrusal dönüşümlerin ne olduğunu kabaca anladığımıza göre belirli formüllere bakalım:

Ölçek

k 1 ,k 2 ,k 3 - ölçeklendirme faktörleri. k 1 ise nesneler artar.

Döndürme

X ekseni etrafında dönüş:

Y ekseni etrafında dönüş:

Z ekseni etrafında dönüş:

Bu arada, yukarıda kullandığımız bu matristir (z ekseni etrafında dönme).

Döndürme yalnızca koordinat uzayını oluşturan eksenler etrafında değil aynı zamanda rastgele düz çizgiler etrafında da olabilir. Rastgele bir düz çizgi etrafında dönme formülü oldukça karmaşıktır, henüz bunu düşünmeye hazır değiliz.

Yukarıdakilerden hatırlamanız gereken en önemli şey şudur: Dönüşüm matrisinin satırları, eski koordinat uzayının koordinatları cinsinden ifade edilen yeni koordinat uzayının temel vektörlerini içerir. .

Bu basit şeyi anlarsanız (yeni uzayın temel vektörlerinin matrise yazıldığını), o zaman dönüşüm matrisine bakarak yeni koordinat uzayını kolayca görebilirsiniz.

Ve son şey:
Doğrusal dönüşümler nesneleri hareket ettiremez. Onlar. nesneler büyütülebilir/küçültülebilir, döndürülebilir ancak hareketsiz kalırlar.

Afin dönüşümler

Afin dönüşümler ötelemeli doğrusal dönüşümlerdir. Afin dönüşümleri kullanarak nesneleri taşıyabilirsiniz.

Formül çok basit:

bir = bM + v;

Burada b başlangıç ​​noktası, M doğrusal dönüşüm matrisi, a dönüşüm noktası ve v iki uzayı birbirine bağlayan vektördür. Veya başka bir deyişle uzunluğu iki koordinat alanı arasındaki mesafeye eşit olan bir vektördür.

Dersin başındaki resimde ihtiyaç duyulan şey afin dönüşümdür: önce nesne uzayından eylemsiz uzaya doğrusal bir dönüşüm, ardından nesne uzayının tüm noktalarının v vektörünü kullanarak dünya uzayına aktarılması.

3D grafik programlamada hesaplamaları basitleştirmek için 4D vektörler, 4x4 matrisler ve homojen koordinatlar kullanılır. Dördüncü boyutun herhangi bir rolü yoktur; yalnızca hesaplamaları basitleştirmek amacıyla sunulmuştur.

Tahmin edebileceğiniz gibi dört boyutlu bir vektör dört bileşen kullanır: x, y, z ve w. Vektörün dördüncü bileşenine homojen koordinat denir.

Homojen bir koordinatı geometrik olarak temsil etmek çok zordur. Bu nedenle koordinatları (x,y,w) olan üç boyutlu homojen bir uzayı ele alacağız. w=1 noktasında iki boyutlu bir düzlemin tanımlı olduğunu düşünelim. Buna göre homojen uzayda iki boyutlu bir nokta aşağıdaki (x,y,1) koordinatlarıyla temsil edilir. Uzayda düzlemde olmayan tüm noktalar (w != 1 düzlemindedirler) iki boyutlu bir düzleme izdüşüm yapılarak hesaplanabilir. Bunu yapmak için bu noktanın tüm bileşenlerini homojen bir şekilde bölmeniz gerekir. Onlar. w!=1 ise “fiziksel” (çalıştığımız yer ve w=1) düzlemde noktanın koordinatları şu şekilde olacaktır: (x/w,y/w,w/w) veya (x/w) ,y/w,1). Resme bakın:

Vektörlerin koordinatları aşağıdaki gibidir:

V 1 = [ 3 3 3 ] v 2 = [ 3 1 0 ] v 3 = [ 3 -2 -2 ]

Bu vektörler "fiziksel" düzleme (w=1) aşağıdaki şekilde yansıtılır:

V 1 = [ 1 1 1 ] v 3 = [ -1,5 1 1 ]

Şekilde üç vektör gösterilmektedir. Bir nokta w=0 düzleminde yer aldığında bu noktanın fiziksel düzleme (vektör v 2) yansıtılamayacağını lütfen unutmayın.

Fiziksel düzlemdeki her noktaya karşılık homojen uzayda sonsuz sayıda nokta vardır.

Dört boyutlu uzayda her şey tamamen aynıdır. W = 1: (x,y,z,1) olan fiziksel uzayda çalışıyoruz. Hesaplamalar sonucunda w != 1 ise, noktanın tüm koordinatlarını homojen bir koordinatlara bölmeniz gerekir: (x/w,y/w,z/w,w/w) veya (x/ a,y/w,z/w,1 ). Ayrıca w = 0 olduğu özel bir durum da vardır. Buna daha sonra bakacağız.

Şimdi uygulamaya geçelim: neden homojen bir koordinata ihtiyacımız var?

Daha önce de öğrendiğimiz gibi, 3x3'lük bir matris doğrusal bir dönüşümü temsil eder; aktarım (hareket) içermez. Transfer için ayrı bir vektör kullanılır (ve bu bir afin dönüşümdür):

V = aM + b

Onlar. eylemsizlik koordinat sistemine gitmek için nesnenin tüm noktalarını (vektörlerini) M dönüşüm matrisi ile çarparız (temel vektörleri dünya koordinat sisteminin temel vektörleriyle çakışır) ve ardından b vektörünü kullanarak dünya uzayına ulaşırız. . Size b vektörünün nesne uzayının başlangıcı ile dünya uzayının başlangıcını birleştirdiğini hatırlatmama izin verin.

Böylece, dört boyutu kullanarak hem doğrusal dönüşümleri (döndürme, ölçeklendirme) hem de ötelemeyi tek bir matrise sığdırabilirsiniz.

Dördüncü bileşenin her zaman bire eşit olduğunu hayal edelim (her ne kadar bunun böyle olmadığını zaten öğrenmiş olsak da). Artık doğrusal dönüşüm 4x4'lük bir matris kullanılarak temsil edilebilir:

Dört boyutlu uzayda vektörleri bir dönüşüm matrisiyle çarpma formülüne bakalım:

V x = (xi x + yj x + zk x + w*0) v y = (xi y + yj y + zk y + w*0) v z = (xi z + yj z + zk z + w*0) v w = (x*0 + y*0 + z*0 + w*1) Gördüğümüz gibi, 4x4 matris kullanılarak dönüştürülen vektörün bileşenleri, 3x3 matris kullanılarak dönüştürülen vektörün bileşenlerine eşittir. Dördüncü bileşen, anlaştığımız gibi her zaman bire eşit olacaktır, bu nedenle kolayca atılabilir. Dolayısıyla 3x3 ve 3x4 boyutundaki matrislerin gerçekleştirdiği dönüşümlerin eşdeğer olduğunu söyleyebiliriz.

Şimdi transfer matrisine bakalım:

Nesne uzayındaki herhangi bir vektörü (dersin başındaki şekle bakın) bu matrisle çarpın ve bu vektörü dünya koordinat uzayında ifade edebilirsiniz (bu, nesne ve dünya uzaylarının temel vektörleri eşitse olur).

Lütfen bunun yalnızca dört boyutlu uzayda doğrusal bir dönüşüm olduğunu unutmayın.

Matris çarpımını kullanarak döndürme matrisi ile öteleme matrisini birleştirebiliriz:

Bu son matris tam olarak en başından beri ihtiyacımız olan şeydi. Tüm öğelerinin tam olarak ne anlama geldiğini iyi anlamalısınız (4. sütun hariç).



Makaleyi beğendin mi? Arkadaşlarınızla paylaşın!