【问题标题】:Matrix transformation scale with multiple objects具有多个对象的矩阵变换比例
【发布时间】:2013-01-04 22:58:35
【问题描述】:

我有一组瓷砖,它们被绘制在我的“画布”上。

我知道如何将我的画布转换为从它的中心缩放:

var m:Matrix = new Matrix();
m.translate(-centerX, -centerY);
m.scale(scaleX, scaleY);
m.translate(centerX, centerY);

这将缩放图块并将其转换为它的 x,y

var m:Matrix = new Matrix();
m.translate(_tile.x,_tile.y);
m.scale(_scale, _scale);

但是当我在“画布”上绘制时,如何从中心缩放所有位图图块

【问题讨论】:

    标签: actionscript-3 matrix scale


    【解决方案1】:

    此代码展示了如何使用 BitmapData.draw 方法缩放和居中平铺位图数据(tile_1 是“(0,0)”排列的位图):

    var tile:BitmapData = new tile_1();
    var canvas:BitmapData = new BitmapData(1000, 1000, true, 0x00FFFFFF);
    var scale:Number = 2;
    canvas.draw(tile, new Matrix(scale, 0, 0, scale, -tile.width*scale/2, -tile.height*scale/2));
    

    如果您使用其他技术绘制瓷砖,请更详细地描述它。

    【讨论】:

    • 感谢您的回复。我的问题有点不同。我有 100x100 的瓷砖阵列,我把它们放在我的“画布”上。我在绘制它们时使用转换来滚动我的图块。我想学习如何根据它们在画布上的位置从中心缩放所有图块。
    • “根据它们在画布上的位置从中心缩放所有图块”是什么意思。 ?我的代码缩放平铺并绘制它,您也可以将给定点的翻译添加到绘图矩阵中,否则我没有得到您的问题。
    猜你喜欢
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2020-04-11
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    相关资源
    最近更新 更多