Jakie jest znaczenie m34 struktury CATransform3D, wiem tylko, że może zmienić perspektywę, ale jakie jest znaczenie, gdy wartość wynosi -0,001 i 0,001?znaczenie m34 z CATransform3D
14
A
Odpowiedz
18
Pełne informacje można znaleźć pod numerem here. Zwróć uwagę, że Apple używa odwróconego porządku mnożenia do rzutowania (względem danego linku), więc wszystkie multiplikacje macierzy są odwrócone i wszystkie macierze są transponowane.
Krótki opis znaczenie:
- odległość M34 = 1/Z do płaszczyzny rzutowania (1/e z terminu w związku odniesienia)
- + dla osi Z w kierunku widz, co skutkuje w „patrząc w lustro” czuć podczas używania -
- centrum projekcja (0,0,0) plus wszelkie tłumaczenia skonfigurowaniu
1
czytałem kilka artykułów includin g tego: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreAnimation_guide/AdvancedAnimationTricks/AdvancedAnimationTricks.html#//apple_ref/doc/uid/TP40004514-CH8-SW13
Moi uchwały jest tutaj:
podmioty:
eye
- odległość od ekranu do oczuscale
- wizualna skala przekształconego obiektudistance
- odległość przekształcony obiekt
łączące wzorów:
scale = eye/(eye + distance)
distance = eye * (1.0/scale - scale)
eye = distance/(1.0/scale - scale)
Przykład obliczanie osi Z na odległość dla odklejoną skali wybranej odległości oka:
CATransform3D transformByScaleAndEye(CGFloat scale, CGFloat eye) {
CATransform3D t = CATransform3DIdentity;
t.m34 = -1.0/eye;
CGFloat distance = -eye*(1.0/scale - scale);
return CATransform3DTranslate(t, 0, 0, distance);
}
Powiązane problemy
- 1. Uzyskiwanie "skali" z CATransform3D
- 2. Konwertuj GLKMatrix4 i CATransform3D
- 3. Zmiana kąta perspektywy z prawej na lewą, w CATransformLayer iOS przy użyciu CATransform3D
- 4. Jak mogę odwrócić CALayer za pomocą CATransform3D?
- 5. Jak animować CATransform3D za pomocą CAKeyframeAnimation?
- 6. Jak powinienem przetłumaczyć model OpenGLES do CATransform3D?
- 7. Znaczenie === z wywołania funkcji
- 8. CATransform3D: Oblicz wysokość po transformacji perspektywy
- 9. Znaczenie android.content.UriMatcher
- 10. Przestarzałe znaczenie?
- 11. Znaczenie "EiC"
- 12. Animacja 3D - CABasicAnimation i CATransform3D dając luka między widokami
- 13. Czy korzystanie z MaxPermSize ma niewielkie znaczenie?
- 14. Znaczenie struktury z wbudowanym anonimowym interfejsem?
- 15. Jakie jest znaczenie wartości z Java Process.exitValue()?
- 16. Znaczenie operatora SPARQL ";"
- 17. Znaczenie kolorów graficznych TortoiseHg
- 18. Znaczenie Eclipse Ikona Adornment
- 19. Maven: Znaczenie repozytorium ID
- 20. Jakie jest znaczenie System.CLSCompliantAttribute?
- 21. Znaczenie [-1,1] [+ !! boolean_var]
- 22. Zmienne znaczenie ze strażnikiem
- 23. Dlaczego znaczenie nawiasów klamrowych w języku JavaScript ma znaczenie?
- 24. Dokładne znaczenie PHP max_execution_time
- 25. Jakie jest znaczenie CTOR?
- 26. Znaczenie sufiksu U
- 27. Znaczenie ~. (kropka tyldy)?
- 28. Znaczenie Double.doubleToLongBits (x)
- 29. Język C: znaczenie operatora "#"?
- 30. Znaczenie inter_op_parallelism_threads i intra_op_parallelism_threads
Co ' 1/z''? Nadal nie dostaję twojego wyjaśnienia. Co oznacza m34? Co robią zmiany? – confile
z jest odległością do twojej płaszczyzny rzutu, m43 = 1/z. Zaktualizowałem odpowiedź, aby uczynić ten punkt nieco jaśniejszym. Zmiany zmieniają odległość i sprawiają, że perspektywa wygląda inaczej na tej samej scenie. –