进行这种转换的最佳方法是什么:我有 4 对坐标,我需要将图像的角准确地放在它们上面?就像在 Photoshop 中一样,当您处于自由变换模式并按住 ctrl 移动图像的角落时。

类似的东西。
进行这种转换的最佳方法是什么:我有 4 对坐标,我需要将图像的角准确地放在它们上面?就像在 Photoshop 中一样,当您处于自由变换模式并按住 ctrl 移动图像的角落时。

类似的东西。
您可以使用 graphics.drawTriangles。 http://help.adobe.com/en_US/as3/dev/WS84753F1C-5ABE-40b1-A2E4-07D7349976C4.html
这段代码应该做你需要的(未经测试)
graphics.beginBitmapFill(bitmapData);
graphics.drawTriangles( 
   Vector.<Number>([10,10, 100,10, 10,100, 100,100]), 
   Vector.<int>([0,1,2, 1,3,2]),
   Vector.<Number>([0,0, 1,0, 0,1, 1,1])
); 
如果您可以使用 Flash 10drawTriangles()方法,那么此链接将为您提供一个很好的解释,说明您正在尝试做什么,并提供一些有据可查的功能代码。该代码与 romamik 提供的解决方案非常相似,但是,您需要计算 的正确t值uvtData才能使其正确呈现:
从该链接总结:
(1/point_distance)*ratio计算每个点的透视失真——投影到一个人造 3d 空间(也就是帖子作者所说的“魔法”)这应该会产生您正在寻找的效果。
如果您不能使用drawTriangles(),那么此链接提供了一种替代方法,但它不会产生与该方法一样好的结果drawTriangles()。
您可以使用从旧 3D 引擎 Sandy 移植的DistortImage 类。一种更清洁的方法是利用,rotateX但rotateY它需要一些数学上的痛苦!