【问题标题】:fitting movie clip to 4 coordinates将影片剪辑拟合到 4 个坐标
【发布时间】:2012-04-04 19:21:19
【问题描述】:

我很接近动作脚本,但我遇到了一个电影剪辑的问题。

我有 4 个坐标需要适合它们的影片剪辑,所以影片剪辑的每个角都在一个坐标上。

我唯一能找到它用矩阵和角度转换它(见示例),但这些不能是我计算所有角度等问题的最佳解决方案。

var degX:Number = 0;
var degY:Number = 0.3;

//Get the transform matrix for the object to skew
var m:Matrix = bild.transform.matrix;
m.b = Math.tan(degY *(Math.PI/180));
m.c = Math.tan(degX *(Math.PI/180));

//Apply the matrix to the transform object
var t:Transform = new Transform(bild);
t.matrix = m;

//Apply the skew
bild.transform = t;

我希望你了解我的问题并知道解决方案。

我已经尝试过扭曲图像,因为它似乎完全符合它的需要,但我无法得到它,所以显示我的图像。坐标有效,如果我取消评论评论的部分,我会看到白色的 retangles exaclty 它们应该在哪里,但它们不会在更新时被删除,我希望你能帮助我。这是我的代码:

var PointUR:Point = new Point();
PointUR.x = values1[0];
PointUR.y = values1[1];

var PointUL:Point = new Point();
PointUL.x = values2[0];
PointUL.y = values2[1];

var PointBR:Point = new Point();
PointBR.x = values3[0];
PointBR.y = values3[1];

var PointBL:Point = new Point();
PointBL.x = values4[0];
PointBL.y = values4[1];


[Embed(source='MyImage.jpg')]
var MyImage:Class;
var shape:Shape = new Shape();
var bitmap:Bitmap = new MyImage();
var showGrid:Boolean = true;
var myColorTransform = new ColorTransform();
/*myColorTransform.color = 0xFFFFFF;
shape.transform.colorTransform = myColorTransform;
shape.graphics.beginFill(0x000000,1);
addChild(shape);*/
var distortion:DistortImage = new DistortImage(267, 400, 3, 3);
if (showGrid){
            shape.graphics.lineStyle(1, 0x00FF00);
}    
distortion.setTransform(shape.graphics, 
                        bitmap.bitmapData, 
                        PointUR, 
                        PointUL, 
                        PointBR, 
                        PointBL);

【问题讨论】:

  • 这4个点是长方形、平行四边形还是梯形?
  • 它们是梯形的,但它们改变了时间,因此它们也可以在某个时间成为一个平行图。

标签: actionscript-3 flash transformation movieclip coordinate-transformation


【解决方案1】:

使用矩阵将movieClip或Sprite转换为梯形在as3中是不可能的。查看this link,它解释了可能性的程度

简而言之:

实现这一点的方法是将 DisplayObject 分解为更小的三角形,并对每个三角形应用不同的平移矩阵。最终的结果会使三角形有点突出,但是如果增加三角形的数量,这种效果就会减弱。

这是一个link 用于包含演示和源代码的博客

使用 3d 类或 Mathieu Badimon 的 five3d 更容易做到这一点,无论如何,失真部分,我不确定你会如何匹配一组控制点。

【讨论】:

  • 谢谢你的帖子,这似乎正是我需要的,但我无法让它工作,请看看我上面添加的代码。
猜你喜欢
  • 2014-01-20
  • 1970-01-01
  • 2014-04-13
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
相关资源
最近更新 更多