Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- struct vector
- {
- float data[3];
- vector()
- {
- for (size_t i = 0; i < 3; i++)
- {
- data[i] = 0;
- }
- }
- vector(float x, float y, float z)
- {
- data[0] = x;
- data[1] = y;
- data[2] = z;
- }
- void print()
- {
- for (size_t y = 0; y < 3; y++)
- {
- std::cout << data[y];
- if (y < 2) std::cout << ", ";
- std::cout << std::endl;
- }
- }
- };
- template <typename T>
- struct matrix3x3
- {
- T data[3][3];
- matrix3x3()
- {
- for (size_t y = 0; y < 3; y++)
- {
- for (size_t x = 0; x < 3; x++)
- {
- data[y][x] = 0;
- }
- }
- }
- matrix3x3(T p1, T p2, T p3, T p4, T p5, T p6, T p7, T p8, T p9)
- {
- data[0][0] = p1;
- data[0][1] = p2;
- data[0][2] = p3;
- data[1][0] = p4;
- data[1][1] = p5;
- data[1][2] = p6;
- data[2][0] = p7;
- data[2][1] = p8;
- data[2][2] = p9;
- }
- void print()
- {
- for (size_t y = 0; y < 3; y++)
- {
- for (size_t x = 0; x < 3; x++)
- {
- std::cout << data[y][x];
- }
- std::cout << std::endl;
- }
- }
- matrix3x3 operator*(const matrix3x3& other)
- {
- matrix3x3 newMatrix;
- for (size_t z = 0; z < 3; z++)
- {
- for (size_t y = 0; y < 3; y++)
- {
- newMatrix.data[y][z] = 0;
- for (size_t x = 0; x < 3; x++)
- {
- newMatrix.data[y][z] += data[y][x] * other.data[x][z];
- }
- }
- }
- return newMatrix;
- }
- const vector operator*(const vector other)
- {
- vector newVector;
- for (size_t y = 0; y < 3; y++)
- {
- newVector.data[y] = 0;
- for (size_t x = 0; x < 3; x++)
- {
- newVector.data[y] += data[y][x] * other.data[x];
- }
- }
- return newVector;
- }
- };
- int main()
- {
- matrix3x3<float> matrix(1.0f, 2.0f, 3.0f, 2.0f, 4.0f, 0.0f, 5.0f, -1.0f, 2.0f);
- matrix3x3<float> matrix2(1.0f, 2.0f, 0.0f, 4.0f, 5.0f, 0.0f, 1.0f, 0.0f, 0.0f);
- vector vector1(1, 4, 1);
- std::cout << "matrix 1" << std::endl;
- matrix.print();
- std::cout << std::endl << "+ matrix 2" << std::endl;
- matrix2.print();
- std::cout << std::endl << "= matrix 3" << std::endl;
- matrix3x3<float> matrix3 = matrix * matrix2;
- matrix3.print();
- std::cout << std::endl << "vector yolo" << std::endl;
- vector vector2 = matrix * vector1;
- vector2.print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement