Ho un'immagine bitmap AS3 che desidero per inclinare in questo modo:Utilizzando una 4x4 3DMatrix in AS3 per inclinare immagini
Vorrei solo per inclinare la parte inferiore dell'immagine, e lasciare la parte superiore da sola. Sulla base delle mie ricerche che ho fatto finora, sembra che vorrei usare la classe Matrix3D, ma non sono abbastanza sicuro su come implementarlo efficacemente.
Grazie ad una risposta di seguito, l'articolo è una risorsa eccellente per capire la classe Matrix3D con una matrice 3x3: http://www.senocular.com/flash/tutorials/transformmatrix/ Tuttavia impressionante come quella tutorial è, esso non prevede la possibilità di inclinare l'immagine sopra. Quello che sto cercando è un tutorial simile su come usare una matrice 4x4. Tutto quello che vorrei sapere è dove mettere i numeri nella matrice, e dovrei essere in grado di capire tutto il resto.
Ecco qualche esempio di codice su quello che ho ottenuto così per:
var tempLoader:Loader=new Loader();
var tempBitmap:Bitmap;
var fattenTheBottom:Number;
tempLoader.load(new URLRequest("image.png"));
tempLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,castBitmap);
function castBitmap(e:Event):void
{
tempLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,castBitmap);
tempBitmap = Bitmap(tempLoader.content);
// Make the image into a trapezoid here using fattenTheBottom
addChild(tempBitmap);
}
Ogni consiglio è meravigliosamente apprezzato!
Forse sarà più semplice utilizzare la rotazione 3D per avvicinare la parte inferiore al visore? Non sono sicuro se lo strumento 3D Rotate abbia un equivalente AS3, ma in caso contrario potresti provare a implementare un motore 3D di base. – Marty
Che tipo di vincoli si vuole essere in grado di controllare, cioè si tratta di essere in grado di definire esplicitamente la larghezza della parte inferiore del trapezio. Se non come suggerisce Marty dovresti essere in grado di usare solo rotationX http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#rotationX altrimenti penso che usare una 3D Matrix possa funzionare http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix3D.html#appendRotation() translate ruota attorno a X translate then tempBitmap.transform.matrix3D = your3DMatrix. – shaunhusain
Se si è interessati a uno stretto controllo di uno qualsiasi dei vincoli sulla dimensione della Bitmap che deve essere più esatto piuttosto che a occhio, questo richiederà probabilmente un po 'più di matematica. – shaunhusain