Example #1
0
            public bool Show(AnimData AD)
            {
                if (AD.animType == AnimOperation.AnimDraw || AD.animType == AnimOperation.AnimErase)
                {
                    Point[] ptRect = new Point[4];

                    ptRect[0]   = AD.ptRelRightTop;
                    ptRect[1].X = AD.ptRelRightTop.X;
                    ptRect[1].Y = -AD.ptRelRightTop.Y;

                    int nRemainSteps = AD.iStep - AD.iTotalSteps;
                    int nRemainAngle = AD.iParameter * nRemainSteps;

                    double fxScale = MATRIXF.fixedDiv(AD.iStep, AD.iTotalSteps);
                    double fxAngle = MATRIXF.fixedDiv(nRemainAngle, AD.iTotalSteps);


                    MATRIXF matrix = MATRIXF.scaleMatrix(fxScale, fxScale) * MATRIXF.rotateMatrix(fxAngle);
                    ptRect[0] = ptRect[0] * matrix;
                    ptRect[1] = ptRect[1] * matrix;
                    ptRect[2] = MATRIXF.sum(AD.ptCenter, ptRect[0]);
                    ptRect[3] = MATRIXF.sum(AD.ptCenter, ptRect[1]);
                    ptRect[0] = MATRIXF.subtract(AD.ptCenter, ptRect[0]);
                    ptRect[1] = MATRIXF.subtract(AD.ptCenter, ptRect[1]);

                    drawPoly(ptRect, AD.color);
                }                //end if

                return(true);
            }    //end Show