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

📄 matrix.java

📁 JAVA 反走样画直线 可在JAVA1.1下使用
💻 JAVA
字号:
///////////////////////////////////////////////////////////
// DeJaved by mDeJava v1.0. Copyright 1999 MoleSoftware. //
//       To download last version of this software:      //
//            http://molesoftware.hypermatr.net          //
//               e-mail:molesoftware@mail.ru             //
///////////////////////////////////////////////////////////


public class Matrix
{

    public float m[][] = null;

    Matrix()
    {
        m = new float[4][4];
        setZero();
    }

    public void setZero()
    {
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 4; j++)
                m[i][j] = 0.0F;

        }

    }

    public void setIdentity()
    {
        setZero();
        m[0][0] = 1.0F;
        m[1][1] = 1.0F;
        m[2][2] = 1.0F;
        m[3][3] = 1.0F;
    }

    public void setTranslate(Vect vect)
    {
        setTranslate(vect.d[0], vect.d[1], vect.d[2]);
    }

    public void setTranslate(float f, float f1, float f2)
    {
        setIdentity();
        m[3][0] = f;
        m[3][1] = f1;
        m[3][2] = f2;
    }

    public void setRotateX(float f)
    {
        setIdentity();
        m[2][2] = m[1][1] = (float)Math.cos(f);
        m[2][1] = -(m[1][2] = (float)Math.sin(f));
    }

    public void setRotateY(float f)
    {
        setIdentity();
        m[2][2] = m[0][0] = (float)Math.cos(f);
        m[0][2] = -(m[2][0] = (float)Math.sin(f));
    }

    public void setRotateZ(float f)
    {
        setIdentity();
        m[0][0] = m[1][1] = (float)Math.cos(f);
        m[1][0] = -(m[0][1] = (float)Math.sin(f));
    }

    public void setScale(Vect vect)
    {
        setScale(vect.d[0], vect.d[1], vect.d[2]);
    }

    public void setScale(float f, float f1, float f2)
    {
        setIdentity();
        m[0][0] = f;
        m[1][1] = f1;
        m[2][2] = f2;
    }

    public Matrix mul(Matrix matrix)
    {
        Matrix matrix1 = new Matrix();
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 4; j++)
            {
                for(int k = 0; k < 4; k++)
                    matrix1.m[i][j] += m[i][k] * matrix.m[k][j];

            }

        }

        return matrix1;
    }

    public Vect apply(Vect vect)
    {
        Vect vect1 = new Vect(0.0F, 0.0F, 0.0F);
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 4; j++)
                vect1.d[i] += vect.d[j] * m[j][i];

        }

        return vect1;
    }

    public Matrix copy()
    {
        Matrix matrix = new Matrix();
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 4; j++)
                matrix.m[i][j] = m[i][j];

        }

        return matrix;
    }
}

⌨️ 快捷键说明

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