Sen gerek dönüşüm matrisi belirlemek sonra, ekran-uzay koordinatlarına kiremit uzay koordinatlarından ters matris hesaplamak karo-uzay olanlara ekran uzay koordinatları dönüşümleri onları uygulandığında bu, hangi için.
Bu arada: Ofsetiniz aslında herhangi bir aklı başında koordinat sisteminde (0.0, 1.0) olabilecek bir yeri işaret ediyor, ama bu büyük bir problem değil, akılda tutulması gereken bir şey. Bu, dönüştürülmüş koordinat sisteminizin başlangıç noktasının kayması (Offset + 32, 0) olduğu anlamına gelir.
Özel durum
Temel olarak fayans-uzay (a, b) koordinatlarını ekran-uzay (x, y) koordinatlarına dönüştürmek için yaptığınız şey, aşağıdaki dönüşüm matrisini çalıştırmaktır:
Tanımlar: kiremit için a ve b (0, 0) [0.0, 1.0) aralığındadır (0.0, 0.0) üst köşe, (1.0, 1.0) alt köşe, (0.0, 1.0) sol köşe ve (1.0, 0.0) ekran alanında sağ köşesi.
Çeviriyi matrise dahil edebilmek için koordinat tanımlarını sabit bir üçüncü koordinatla (her zaman tam olarak 1'dir) genişletiriz.
Şimdi bu dönüşüm için ters matris oluşturabilirsiniz . Temel formül:
... C , A için kofaktörlerin matrisidir .
Senin durumunda, determinant | A | ofset ne olursa olsun, her zaman 1024'tür, yani ters matris:
Örnek hesaplama
Şimdi, örnek verileriniz için ...
Ofset için numaranızı formüle koyun ve şunu elde edin:
Matris ile çarpma (105, 100, 1) (ekran koordinatları):
Üçüncü koordinat her zaman 1 olduğundan, hesaplamak zorunda değiliz. En yakın tam sayıya yuvarlayın ve beklendiği gibi, karo alanı koordinatlarınız (1, 4) alırsınız.
Genel dimetrik izdüşüm matrisleri
Böyle bir perspektifiniz varsa, her döşemenin genişliği 2 w (örnekte 64, yani w = 32) ve 2 saat yükseklikte (örnekte 32, h = 16) ve başlangıç noktasının kayması sırasıyla yatay ve dikey eksen için f x ve f y olan ekran alanında (örnekte 192 ve 0), matrisler aşağıdaki gibi görünür.
Ekran alanına alan döşemek
Döşeme alanı için ekran boşluğu