📄 matrix.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 + -