polytestの技術的な説明
//位置とUV値からMatrixを求める
public function GetMatrixFromPosUV(pos1:Point,pos2:Point,pos3:Point,uv1:Point,uv2:Point,uv3:Point) : Matrix {
	var mt:Matrix=new Matrix();
	//
	var x1:Number=pos1.x-pos3.x;
	var y1:Number=pos1.y-pos3.y;
	var x2:Number=pos2.x-pos3.x;
	var y2:Number=pos2.y-pos3.y;
	var u1:Number=uv1.x-uv3.x;
	var v1:Number=uv1.y-uv3.y;
	var u2:Number=uv2.x-uv3.x;
	var v2:Number=uv2.y-uv3.y;
	var tx:Number=pos3.x;
	var ty:Number=pos3.y;
	var tu:Number=uv3.x;
	var tv:Number=uv3.y;
	//分母計算
	var dd:Number=((u1*v2)-(u2*v1));
	if(dd<0.0001 && dd>-0.0001){
	//分母が小さすぎる場合
		mt.a=10000.0;
		mt.b=0;
		mt.c=0;
		mt.d=10000.0;
		mt.tx=tu;
		mt.ty=tv;
	} else {
	//計算可能
		var inv_dd:Number=1.0/dd;
		var A:Number =((x1*v2)-(x2*v1))*inv_dd;
		var B:Number =((y1*v2)-(y2*v1))*inv_dd;
		var C:Number =((x2*u1)-(x1*u2))*inv_dd;
		var D:Number =((y2*u1)-(y1*u2))*inv_dd;
		var E:Number =-((A*tu)+(C*tv)-tx);
		var F:Number =-((B*tu)+(D*tv)-ty);
		mt.a =A;
		mt.b =B;
		mt.c =C;
		mt.d =D;
		mt.tx=E;
		mt.ty=F;
	}
	return mt;
}
----------------------------------------------