İki koordinat sisteminde bir dizi bilinen noktaya dayalı bir afine dönüşüm matrisini belirlemek için herhangi bir standart algoritma bilen var mı?Afin transformasyon algoritması
cevap
Afin dönüşümleri 2x3 matrislerle verilir. 2B girişimizi (xy) alarak, 3B vektörüne (xy 1) çarparak ve daha sonra (solda) M ile çarparak bir affin dönüşümü M gerçekleştiririz.
Eğer üç noktamız varsa (x1) için y1) (x2 y2) (x3 y3) haritalama (u1 v1) (u2 v2) (u3 v3) o zaman
[x1 x2 x3] [u1 u2 u3]
M [y1 y2 y3] = [v1 v2 v3].
[ 1 1 1]
sadece
tersi ile sağdan çarparak M alabilirsiniz sahip[x1 x2 x3]
[y1 y2 y3]
[ 1 1 1].
2x3 matris bir 3x3 matris tarafından sağda çarpılır bize istediğimiz 2x3 verir. (Aslında tam tersini gerekmez, ancak matris tersi varsa kullanımı kolaydır.)
Kolayca diğer boyutlara adapte. Eğer 3'ten fazla puanınız varsa en uygun kareleri en iyi şekilde isteyebilirsiniz. Bunun için tekrar sormanız gerekecek, ama biraz daha zor.
Çeviriden ne haber? – jeff
M'nin son sütunu çeviriyi verir. M'yi doğrusal bir harita olarak (soldaki 2x2 matrisi ile verilmiştir) ve son sütuna göre çevirerek okuyabilirsiniz. Ama bunu iki ayrı dönüşüm olarak düşünmek zorunda değilsiniz. Bir 2B noktasını dönüştürmek için, bir 3D puan yapmak için 1, sonra da M ile çarpın. Sonuç, bir seferde hem doğrusal hem de çeviri parçaları olan bir 2D vektördür. – sigfpe
oh, tamam. Teşekkürler ! – jeff
- 1. Afin Dönüşüm Matrisi
- 2. Randomize algoritması
- 3. Eppstein'ın algoritması ve en kısa yollar için Yen algoritması
- 4. Bentley-Ottmann Algoritması Uygulaması
- 5. Brent'in çevrim algılama algoritması
- 6. Yağmur akışı sayma algoritması
- 7. Kıyaslama görüntü geliştirme algoritması
- 8. Doğal Dil İşleme Algoritması
- 9. Çok Desenli Eşleme Algoritması
- 10. "Terim vektörü algoritması" nedir?
- 11. seçim algoritması sorun
- 12. Python'da Gauss-Legendre Algoritması
- 13. Uygulama Cannon algoritması
- 14. Sözlü Dijkstra'nın Algoritması
- 15. Önemsiz dizge ayrıştırma algoritması
- 16. Temel öneri motoru algoritması
- 17. C# Sudoku algoritması C#
- 18. Diyagram konektörü algoritması
- 19. Johnson Algoritması grafiği açıklaması
- 20. Mathematica antialiasing algoritması
- 21. Rijndal Algoritması kullanarak C#
- 22. Kısmi ayırma algoritması
- 23. Doğrusal süre Grafik algoritması
- 24. n boyutlu eşleştirme algoritması
- 25. iOS simge jiggle algoritması
- 26. R * -Tree algoritması nedir?
- 27. DFS algoritması Geçişi
- 28. Android - Polyline kodlama algoritması?
- 29. Boole Satisfiability - algoritması
- 30. Birleştirme Sıralama Algoritması?
Kolej günlerimi hatırlarsam, bunu bir dizi denklem kurarak ve dönüşüm için çözerek yapamaz mıydınız? Bu arada, bu senin ödev mi? – WhirlWind
Bu daha http://mathoverflow.net için bir soru değil mi? – BalusC
@WhirlWind Hayır, bu benim ödevim değil. Kendime bir çözüm buldum, ancak biraz "hacky" gibi görünüyor ve bazı vakaları çok iyi idare ediyor gibi görünmüyor. Standart bir algoritma arıyordum, ancak şu ana kadar başarısız oldu. Burada birinin bilen biri olup olmadığını merak ediyordum. @BalusC Bu mu? Bunun yerine oraya sormalı mıyım? Üzgünüm :) Burada biraz yeniyim. –