8.7.10 改变内建行为

本文介绍了如何通过修改位移向量tx和ty来改变旋转方法rotate()的行为,实现显示对象围绕自身中心旋转的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  位移向量的计算原理不仅适用于伸缩映射。在旋转和斜切等变换中,使用同样的计算原理。可以利用这个特性,改变Matrix类内建方法的行为。

方法rotate()的默认行为,是围绕显示对象父容器的坐标原点旋转。前文曾演示了通过translate()方法,将显示对象中心移动到父容器原点。这样做是为了得到围绕中心旋转的执行结果。通过学习,现在读者已经具备充足的矩阵知识,理解了变形中位移向量txty的作用。可以用更简洁的方法,改变rotate()方法的行为。

打开例8-9的代码编辑器,输入以下代码:

//默认的方法行为

function rotate_1():void

{

         objMatrix.rotate(flipstep/100);

         flipobjbox.flipObj.transform.matrix=objMatrix;

}

 

//修改方法的行为

function rotate_2():void

{

         objMatrix.ty-=80;

         objMatrix.rotate(flipstep/100);

         objMatrix.ty+=80;

         flipobjbox.flipObj.transform.matrix=objMatrix;

}

在主程序中调用执行rotate_2()函数:

rotate_2();

编译并执行这段代码,程序的运行效果如图所示:

这段代码中,rotate_1()演示了默认情况下的Matrix.rotate()方法,其行为早已为读者所熟悉,不再赘述。在rotate_2()中,代码通过修改矩阵的ty值,规避了rotate()方法执行时的向量运算,达到修改方法执行行为的目的。

在程序的输出画面,可观察到显示对象围绕其中心顺时针旋转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值