flash on 2010-11-4
なんか間違えてるのかな?
♥0 |
Line 47 |
Modified 2010-11-04 23:29:04 |
MIT License
archived:2017-03-20 17:11:09
ActionScript3 source code
/**
* Copyright zahir ( http://wonderfl.net/user/zahir )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/p4uJ
*/
package
{
import flash.display.Sprite;
import flash.geom.Matrix3D;
import flash.geom.Vector3D;
import flash.text.TextField;
public class InvertMatrix_test extends Sprite
{
public function InvertMatrix_test()
{
var t:TextField = addChild( new TextField() ) as TextField;
t.width = t.height = 465;
var m:Matrix3D = new Matrix3D();
var identityVector:Vector.<Number> = m.rawData;
var inv:Matrix3D = new Matrix3D();
var v:Vector.<Number>;
var notInvCount:int = 0;
var count:int = 0;
var str:String = "";
for(var rot:int = 0; rot<360; rot++){
m.rawData = identityVector;
m.appendRotation( rot, Vector3D.X_AXIS );
inv.rawData = m.rawData;
if( inv.invert() )
{
m.append( inv );
v = m.rawData;
for(var i:int = 0; i<16; i++)
{
var a:Number = identityVector[i];
var b:Number = v[i];
if(a != b){
str += "rot = " + rot + " 判定箇所 = " + i + " mat = " + v.toString() + "\n";
count++;
break;
}
}
}else notInvCount++;
}
var str2:String = "(FPが認識する)invert失敗 :: " + notInvCount + "\n";
str2 += "(成功と言ってるけど)invert失敗 :: " + count + "\n\n";
str2 += "失敗した行列\n\n";
str2 += str;
t.text = str2;
}
}
}