mirror of
https://github.com/UOH-CS-Level5/551455-graphics-programming-2526-the-repo-Zyb3rWolfi.git
synced 2025-11-29 00:43:08 +00:00
Completed matricies tests
This commit is contained in:
parent
315273e0ec
commit
7ab6868f19
@ -80,32 +80,82 @@ public class MyMatrix
|
|||||||
|
|
||||||
public static MyMatrix CreateScale(MyVector pScale)
|
public static MyMatrix CreateScale(MyVector pScale)
|
||||||
{
|
{
|
||||||
return null;
|
return new MyMatrix(1f * pScale.X, 0f, 0f, 0f,
|
||||||
|
0f, 1f * pScale.Y, 0f, 0f,
|
||||||
|
0f, 0f, 1f * pScale.Z, 0f,
|
||||||
|
0f, 0f, 0f, 1f * pScale.W);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MyMatrix CreateRotationX(float pAngle)
|
public static MyMatrix CreateRotationX(float pAngle)
|
||||||
{
|
{
|
||||||
return null;
|
float cos = MathF.Cos(pAngle);
|
||||||
|
float sin = MathF.Sin(pAngle);
|
||||||
|
|
||||||
|
return new MyMatrix(1f, 0f, 0f, 0f,
|
||||||
|
0f, cos, sin, 0f,
|
||||||
|
0f, -sin, cos, 0f,
|
||||||
|
0f, 0f, 0f, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MyMatrix CreateRotationY(float pAngle)
|
public static MyMatrix CreateRotationY(float pAngle)
|
||||||
{
|
{
|
||||||
return null;
|
float cos = MathF.Cos(pAngle);
|
||||||
|
float sin = MathF.Sin(pAngle);
|
||||||
|
|
||||||
|
return new MyMatrix(
|
||||||
|
cos, 0f, -sin, 0f,
|
||||||
|
0f, 1f, 0f, 0f,
|
||||||
|
sin, 0f, cos, 0f,
|
||||||
|
0f, 0f, 0f, 1f
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MyMatrix CreateRotationZ(float pAngle)
|
public static MyMatrix CreateRotationZ(float pAngle)
|
||||||
{
|
{
|
||||||
return null;
|
float cos = MathF.Cos(pAngle);
|
||||||
|
float sin = MathF.Sin(pAngle);
|
||||||
|
|
||||||
|
return new MyMatrix(
|
||||||
|
cos, sin, 0f, 0f,
|
||||||
|
-sin, cos, 0f, 0f,
|
||||||
|
0, 0f, 1f, 0f,
|
||||||
|
0f, 0f, 0f, 1f
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MyVector Multiply(MyVector pVector)
|
public MyVector Multiply(MyVector pVector)
|
||||||
{
|
{
|
||||||
return null;
|
float x = GetElement(0,0) * pVector.X + GetElement(0,1) * pVector.Y + GetElement(0,2) * pVector.Z + GetElement(0,3) * pVector.W;
|
||||||
|
float y = GetElement(1,0) * pVector.X + GetElement(1,1) * pVector.Y + GetElement(1,2) * pVector.Z + GetElement(1,3) * pVector.W;
|
||||||
|
float z = GetElement(2,0) * pVector.X + GetElement(2,1) * pVector.Y + GetElement(2,2) * pVector.Z + GetElement(2,3) * pVector.W;
|
||||||
|
float w = GetElement(3,0) * pVector.X + GetElement(3,1) * pVector.Y + GetElement(3,2) * pVector.Z + GetElement(3,3) * pVector.W;
|
||||||
|
|
||||||
|
return new MyVector(x, y, z, w);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MyMatrix Multiply(MyMatrix pMatrix)
|
public MyMatrix Multiply(MyMatrix pMatrix)
|
||||||
{
|
{
|
||||||
return null;
|
MyMatrix result = new MyMatrix(
|
||||||
|
0,0,0,0,
|
||||||
|
0,0,0,0,
|
||||||
|
0,0,0,0,
|
||||||
|
0,0,0,0
|
||||||
|
);
|
||||||
|
|
||||||
|
for (int row = 0; row < 4; row++)
|
||||||
|
{
|
||||||
|
for (int col = 0; col < 4; col++)
|
||||||
|
{
|
||||||
|
float sum = 0f;
|
||||||
|
for (int k = 0; k < 4; k++)
|
||||||
|
{
|
||||||
|
sum += GetElement(row, k) * pMatrix.GetElement(k, col);
|
||||||
|
}
|
||||||
|
result.SetElement(row, col, sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MyMatrix Inverse()
|
public MyMatrix Inverse()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user