【发布时间】:2016-03-07 07:13:39
【问题描述】:
我想做一个类似于rotateAroundInternalPoint()的函数。到目前为止,我的解决方案是这样的:
import flash.events.Event;
import flash.geom.Matrix;
import flash.geom.Point;
addEventListener( Event.ENTER_FRAME, onFrame );
function onFrame(e:Event):void
{
var m:Matrix = item.transform.matrix.clone();
var point:Point = new Point( 50, 50 ); // The object's width and height are 100px, so 50 is the center
point = m.transformPoint( point );
m.translate( -point.x, -point.y );
m.rotate( 5 * ( Math.PI / 180 ) );
m.translate( point.x, point.y );
item.transform.matrix = m;
}
然而,这段代码有一个根本性的缺陷——每次迭代都会变得越来越不精确。
有人能指出造成这种情况的原因以及解决方案是什么吗?
【问题讨论】:
-
我仍然会接受一个更好的答案,它不依赖于参考矩阵,而是依赖于更好的数学。
标签: actionscript-3 matrix geometry computational-geometry haxe