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);
}
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. –