Qual è il significato di m34 della struttura CATransform3D, so solo che può cambiare la prospettiva, ma qual è il significato quando il valore è -0.001 e 0.001?significato di m34 di CATransform3D
14
A
risposta
18
È possibile trovare tutti i dettagli here. Si noti che Apple utilizza l'ordine di moltiplicazione invertito per la proiezione (relativo al collegamento dato) in modo che tutte le moltiplicazioni di matrice siano invertite e tutte le matrici siano trasposte.
Una breve descrizione del significato:
- m34 = 1/z distanza piano di proiezione (z termine 1/e nel link di riferimento)
- + per l'asse z è verso lo spettatore, con un conseguente "guardarsi allo specchio" sentire quando si utilizza -
- centro di proiezione è (0,0,0) più eventuali traduzioni si imposta
1
ho letto alcuni articoli includin g questo: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreAnimation_guide/AdvancedAnimationTricks/AdvancedAnimationTricks.html#//apple_ref/doc/uid/TP40004514-CH8-SW13
mie risoluzioni è qui:
Entità:
eye
- distanza da schermo a occhioscale
- scala visiva di oggetto trasformatodistance
- distanza oggetto trasformato
formule di collegamento:
scale = eye/(eye + distance)
distance = eye * (1.0/scale - scale)
eye = distance/(1.0/scale - scale)
Esempio di calcolo Z-distance per la scala desized di distanza dell'occhio selezionato:
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);
}
Problemi correlati
- 1. Da CATransform3D a CGAffineTransform
- 2. CATransform3D vs. CGAffineTransform?
- 3. Cambia l'angolo di prospettiva da destra a sinistra, in CATransformLayer iOS utilizzando CATransform3D
- 4. Ottenere la 'scala' da un CATransform3D
- 5. Come posso lanciare un CALayer con CATransform3D?
- 6. sfocata UIView con CATransform3D solo su RETINA
- 7. Restituisce CATransform3D per mappare quadrilatero a quadrilatero
- 8. significato di @ (#) caratteri
- 9. Significato di "." in printf
- 10. Significato di !! javascript
- 11. funzione di richiamata significato
- 12. (python) significato di st_mode
- 13. Il significato di "EiC"
- 14. Significato di {*; } In ProGuard
- 15. Significato di -DHAVE_CONFIG_H nei makefile
- 16. Qual è il significato di ∃?
- 17. Significato di doppia sottolineatura all'inizio
- 18. Significato di (+) in query SQL
- 19. Significato di! in Java sintassi
- 20. ARC - Il significato di __unsafe_unretained?
- 21. significato di "questo [int index]"
- 22. Google Play significato di "Installazioni"
- 23. Significato di (? S) in regex
- 24. CMake target_include_directories significato di scope
- 25. Maven: significato di ID repository
- 26. significato di "referenziamento" e "dereferenziazione"
- 27. Significato di XMLElement @ required = true
- 28. Significato di ~. (tilde dot) argomento?
- 29. Significato di "chiuso nella composizione"
- 30. Significato di UTS in UTS_RELEASE
Qual è '' 1/z''? Ancora non capisco la tua spiegazione. Cosa significa m34? Cosa fa il cambiamento? – confile
z è la distanza dal piano di proiezione, m43 = 1/z. Ho aggiornato la risposta per rendere questo punto un po 'più chiaro. Le modifiche cambiano la distanza e fanno apparire la prospettiva diversa sulla stessa scena. –