Tôi có một hình ảnh bitmap AS3 mà tôi muốn nghiêng như vậy:Sử dụng một 3DMatrix 4x4 trong AS3 để nghiêng hình ảnh
tôi sẽ chỉ muốn nghiêng phần dưới cùng của hình ảnh, và rời khỏi phần trên một mình. Dựa trên nghiên cứu của tôi mà tôi đã làm cho đến nay, có vẻ như tôi muốn sử dụng lớp Matrix3D, nhưng tôi không hoàn toàn chắc chắn làm thế nào để thực hiện nó một cách hiệu quả.
Nhờ một câu trả lời dưới đây, bài viết này là một nguồn tài nguyên tuyệt vời để hiểu được lớp Matrix3D với một ma trận 3x3: http://www.senocular.com/flash/tutorials/transformmatrix/ Tuy nhiên như tuyệt vời như hướng dẫn có nghĩa là, nó không cung cấp khả năng nghiêng hình trên. Những gì tôi đang tìm kiếm là một hướng dẫn tương tự về cách sử dụng ma trận 4x4. Tất cả những gì tôi muốn biết là đặt những con số vào ma trận, và tôi sẽ có thể tìm ra mọi thứ khác.
Dưới đây là một số mã ví dụ về những gì tôi đã có như vậy vì:
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);
}
Lời khuyên nào sẽ được đánh giá cao tuyệt vời!
Có thể sẽ dễ dàng hơn khi sử dụng xoay vòng 3D để đưa phần dưới cùng gần hơn với người xem? Bạn không chắc chắn nếu công cụ xoay 3D đi kèm với một AS3 tương đương, nhưng nếu không bạn có thể thử thực hiện một công cụ 3D cơ bản. – Marty
Loại khó khăn nào bạn muốn có thể kiểm soát, đó là bạn quan tâm đến việc có thể xác định rõ chiều rộng của phần dưới cùng của hình thang. Nếu không phải là Marty gợi ý bạn sẽ có thể chỉ sử dụng rotationX http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#rotationX nếu không tôi nghĩ rằng việc sử dụng 3DMatrix sẽ hoạt động http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix3D.html#appendRotation() dịch xoay quanh X dịch rồi tempBitmap.transform.matrix3D = your3DMatrix. – shaunhusain
Nếu bạn quan tâm đến việc kiểm soát chặt chẽ bất kỳ ràng buộc nào về kích thước của Bitmap cần chính xác hơn là nhãn cầu, điều này có thể sẽ đòi hỏi nhiều hơn một chút toán học. – shaunhusain