資源簡介
矩陣的Java實現,含矩陣的所有運算,也可與向量進行運算表示圖形的變換。
代碼片段和文件信息
package?Javagames.util;
public?class?Matrix3x3f?{
????public?static?final?int?DIMENSION?=?3;
????private?float[][]?m?=?new?float[DIMENSION][DIMENSION];
????//m[2][2]=0時,只對第一次向量變換有效,變換后,w?=?0
????public?Matrix3x3f()?{}
????public?Matrix3x3f(float[][]?m)?{
????????setMatrix(m);
????}
????public?Matrix3x3f?add(Matrix3x3f?m1)?{
????????float[][]?tmp?=?new?float[DIMENSION][DIMENSION];
????????for?(int?i?=?0;?i?????????????for?(int?j?=?0;?j?????????????????tmp[i][j]?=?m[i][j]?+?m1.m[i][j];
????????????}
????????}
????????return?new?Matrix3x3f(tmp);
????}
????public?Matrix3x3f?sub(Matrix3x3f?m1)?{
????????float[][]?tmp?=?new?float[DIMENSION][DIMENSION];
????????for?(int?i?=?0;?i?????????????for?(int?j?=?0;?j?????????????????tmp[i][j]?=?m[i][j]?-?m1.m[i][j];
????????????}
????????}
????????return?new?Matrix3x3f(tmp);
????}
????public?Matrix3x3f?mul(Matrix3x3f?m1)?{
????????float[][]?tmp?=?new?float[DIMENSION][DIMENSION];
????????for?(int?i?=?0;?i?????????????for?(int?k?=?0;?k?????????????????for(int?j=0;j ????????????????????tmp[i][j]?+=?m[i][k]?*?m1.m[k][j];
????????????????}
????????????}
????????}
????????return?new?Matrix3x3f(tmp);
????}
????public?void?setMatrix(float[][]?m)?{
????????if?(m.length?==?DIMENSION?&&?m[0].length?==?DIMENSION)?{
????????????this.m?=?m;
????????}
????}
????public?static?Matrix3x3f?zero()?{
????????return?new?Matrix3x3f(new?float[DIMENSION][DIMENSION]);
????}
????public?static?Matrix3x3f?identity()?{
????????float[][]?tmp?=?new?float[DIMENSION][DIMENSION];
????????for?(int?i?=?0;?i?????????????tmp[i][i]?=?1.0f;
????????}
????????return?new?Matrix3x3f(tmp);
????}
????public?static?Matrix3x3f?translate(Vector2f?v)?{
????????return?translate(v.x?v.y);
????}
????public?static?Matrix3x3f?translate(float?x?float?y)?{
????????return?new?Matrix3x
評論
共有 條評論