⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.c.svn-base

📁 A Flash Player with ActionScript support. Write in C and C++. It have two part, one is Player and an
💻 SVN-BASE
字号:
#include "matrix.h"long getX( matrix,x,  y)Matrix *matrix;long x;long y;{ //printf("ScaleX is %f  RotateSkew0 is %f translatex is %ld\n",matrix->ScaleX,matrix->RotateSkew0,matrix->TranslateX);    return (long) (x*matrix->ScaleX+y*matrix->RotateSkew0+matrix->TranslateX);}long getY( matrix,x,  y)Matrix *matrix;long x;long y;{//        printf("RotateSkew1 is %f  ScaleY is %f matrix->TranslateY is %ld\n",matrix->RotateSkew1,matrix->ScaleY,matrix->TranslateY);    return (long) (x*matrix->RotateSkew1+y*matrix->ScaleY+matrix->TranslateY);}void MatrixPrepare(matrix)Matrix *matrix;{    matrix->ScaleX = 1.0;    matrix->ScaleY = 1.0;    matrix->RotateSkew0 = matrix->RotateSkew1 = 0.0;    matrix->TranslateX = matrix->TranslateY = 0;}Matrix MatrixMulti( n, m)Matrix *n;Matrix *m;{    Matrix mat;    mat.ScaleX = n->ScaleX * m->ScaleX + n->RotateSkew0 * m->RotateSkew1;    mat.RotateSkew0 = n->ScaleX * m->RotateSkew0 + n->RotateSkew0 * m->ScaleY;    mat.RotateSkew1 = n->RotateSkew1 * m->ScaleX + n->ScaleY * m->RotateSkew1;    mat.ScaleY = n->RotateSkew1 * m->RotateSkew0 + n->ScaleY * m->ScaleY;    mat.TranslateX = getX(n,m->TranslateX,m->TranslateY);    mat.TranslateY = getY(n,m->TranslateX,m->TranslateY);    return mat;}Matrix invert(matrix)Matrix *matrix;{    Matrix mat;    float det;    det = matrix->ScaleX*matrix->ScaleY-matrix->RotateSkew0*matrix->RotateSkew1;    mat.ScaleX  = matrix->ScaleY/det;    mat.RotateSkew0  = -matrix->RotateSkew0/det;    mat.RotateSkew1  = -matrix->RotateSkew1/det;    mat.ScaleY  = matrix->ScaleX/det;    mat.TranslateX = - (long)(mat.ScaleX * matrix->TranslateX + mat.RotateSkew0 * matrix->TranslateY);    mat.TranslateY = - (long)(mat.RotateSkew1 * matrix->TranslateX + mat.ScaleY * matrix->TranslateY);    return mat;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -