【发布时间】:2012-06-30 13:21:30
【问题描述】:
我有一个 AS3 位图图像,我想像这样倾斜:
我只想歪斜图像的底部,而不理会顶部。根据我迄今为止所做的研究,看起来我想使用 Matrix3D 类,但我不太确定如何有效地实现它。
感谢下面的回答,这篇文章是了解具有 3x3 矩阵的 Matrix3D 类的绝佳资源: http://www.senocular.com/flash/tutorials/transformmatrix/ 然而,尽管该教程很棒,但它并没有提供扭曲上述图像的能力。我正在寻找的是关于如何使用 4x4 矩阵的类似教程。我只想知道将数字放在矩阵中的哪个位置,我应该能够弄清楚其他所有内容。
这里有一些示例代码,说明我的用途:
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);
}
任何建议将不胜感激!
【问题讨论】:
-
也许使用 3D 旋转使底部更靠近观察者会更容易?不确定 3D 旋转工具是否带有等效的 AS3,但如果没有,您可以尝试实现基本的 3D 引擎。
-
您希望能够控制什么样的约束,即您是否关心能够显式定义梯形底部的宽度。如果不像 Marty 建议的那样,您应该能够只使用rotationX help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/… 否则我认为使用 3DMatrix 会起作用 help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/… translate 围绕 X translate 旋转然后 tempBitmap.transform.matrix3D = your3DMatrix。
-
如果您关心对位图大小的任何约束的严格控制,这些约束需要更精确而不是目测,这可能需要更多的数学运算。
-
这个问题被问了一遍又一遍。 stackoverflow.com/questions/772822/…
-
这些很好,但没有一个解释如何使用 4x4 矩阵。我发现的所有研究都导致了如何使用 3x3 矩阵,它没有我正在寻找的倾斜功能。
标签: actionscript-3 flash flash-cs5