flash on 2010-11-4

by zahir
なんか間違えてるのかな?
♥0 | Line 47 | Modified 2010-11-04 23:29:04 | MIT License
play

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;
        }
    }
}

Forked