From c4c321f45e3bb664d00a047685b6a01fda78517d Mon Sep 17 00:00:00 2001 From: blobt Date: Fri, 7 May 2021 16:50:50 +0800 Subject: [PATCH] tmp --- .vs/3dMath/v16/.suo | Bin 0 -> 46592 bytes GMath.cpp | 15 +++++++++++++ GMath.h | 1 + main.cpp | 53 ++++++++++++++++++++------------------------ 4 files changed, 40 insertions(+), 29 deletions(-) create mode 100644 .vs/3dMath/v16/.suo diff --git a/.vs/3dMath/v16/.suo b/.vs/3dMath/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..d78846f073e0218c630ba8a135b023ce23cd2c62 GIT binary patch literal 46592 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 J|7_R){{s~X$+rLi literal 0 HcmV?d00001 diff --git a/GMath.cpp b/GMath.cpp index 136704b..e2a51fe 100644 --- a/GMath.cpp +++ b/GMath.cpp @@ -268,6 +268,21 @@ GVector::GVector(const GVector & copy) memcpy(v, copy.v, n * sizeof(float)); } +GVector::GVector(int dim, const GVector3& copy) +{ + n = dim; + v = new float[n]; + + for (int i = 0; i < n; i++) { + if (i < 3) { + v[i] = copy[i]; + } + else { + v[i] = 0; + } + } +} + GVector::~GVector() { if (v) { diff --git a/GMath.h b/GMath.h index ec8d62e..8e5c110 100644 --- a/GMath.h +++ b/GMath.h @@ -89,6 +89,7 @@ public: GVector(int dim, double x, ...); GVector(const GVector3& copy); GVector(const GVector& copy); + GVector(int dim, const GVector3& copy); ~GVector(); //GVector 3 diff --git a/main.cpp b/main.cpp index 1757d9f..0a09388 100644 --- a/main.cpp +++ b/main.cpp @@ -1,48 +1,43 @@ #include "GMath.h" + #include "CArrayBuffer.h" #include "CDataView.h" #include "CFloat32Array.h" int main() { - - /*int linda = 4; - float a[] = { - 2, -2, 0, - -2, 1, -2, - 0, -2, 0 - }; - GMatrix A(3, 3, a); - GMatrix E(3, 3); - E.SetIdentity(); - E = E * linda; + float x1 = 0.0; + float y1 = 0.0; + float z1 = 1.0; + + float x2 = 0.0; + float y2 = 1.0; + float z2 = 0.0; + + float x3 = 12.0; + float y3 = 10.0; + float z3 = 12.0; + + GVector3 v1(x1, y1, z1); + GVector3 v2(x2, y2, z2); + GVector3 v3(x3, y3, z3); - + GVector t = v1 ^ v2; + float m = t * v3; - cout << ReduceRowEchelonForm(A -E) << endl;*/ + cout << m << endl; float a[] = { - 2, -2, 0, - -2, 1, -2, - 0, -2, 0 + x1, x2, x3, + y1, y2, y3, + z1, z2, z3 }; - GMatrix A(3, 3, a); - GVector3 x1(0.5, 1, 1); - GVector3 x2(-1, -0.5, 1); - GVector3 x3(2, -2, 1); - x1.normalize(); - x2.normalize(); - x3.normalize(); - - GMatrix Q(3, 3); + GMatrix M1(3, 3, a); + cout << Det(M1) << endl; - Q.SetColVec(0, x1); - Q.SetColVec(1, x2); - Q.SetColVec(2, x3); - cout << Inverse(Q)*A*Q << endl; return 0; } \ No newline at end of file