From b725b347dbd5e6cc1119779a69468ea17793be4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Darda?= Date: Tue, 13 Nov 2018 21:30:53 +0100 Subject: [PATCH] Refactoring rotacji --- src/rzutowanie.js | 77 ++++++++--------------------------------------- 1 file changed, 12 insertions(+), 65 deletions(-) diff --git a/src/rzutowanie.js b/src/rzutowanie.js index 2f99371..62f9e8b 100644 --- a/src/rzutowanie.js +++ b/src/rzutowanie.js @@ -415,85 +415,32 @@ class Camera { ]; } - rotateZ(degreeRadians) { - var result = Matrixes.multiplication( - Matrixes.zRotation(degreeRadians), + rotate(rotationMatrix) { + const [[x], [y], [z]] = Matrixes.multiplication( + rotationMatrix, new Point3d( this.directionOfGaze()[0], this.directionOfGaze()[1], this.directionOfGaze()[2] ).asMatrix ); - //this.directionOfGaze = result.slice(0, 3); - - var result2 = Matrixes.multiplication( - Matrixes.zRotation(degreeRadians), - this.position.asMatrix - ); - - var result3 = Matrixes.multiplication( - Matrixes.zRotation(degreeRadians), - this.target.asMatrix - ); - - this.position = new Point3d(result2[0][0], result2[1][0], result2[2][0]); - this.target = new Point3d(result3[0][0], result3[1][0], result3[2][0]); + this.target = new Point3d(x + this.position.x, y + this.position.y, z + this.position.y); + console.log(this.position) + console.log(this.target) return this; } - rotateX(degreeRadians) { - var result = Matrixes.multiplication( - Matrixes.xRotation(degreeRadians), - new Point3d( - this.directionOfGaze()[0], - this.directionOfGaze()[1], - this.directionOfGaze()[2] - ).asMatrix - ); - //this.directionOfGaze = result.slice(0, 3); - - var result2 = Matrixes.multiplication( - Matrixes.xRotation(degreeRadians), - this.position.asMatrix - ); - - var result3 = Matrixes.multiplication( - Matrixes.xRotation(degreeRadians), - this.target.asMatrix - ); - - this.position = new Point3d(result2[0][0], result2[1][0], result2[2][0]); - this.target = new Point3d(result3[0][0], result3[1][0], result3[2][0]); + rotateZ(degreeRadians) { + return this.rotate(Matrixes.zRotation(degreeRadians)); + } - return this; + rotateX(degreeRadians) { + return this.rotate(Matrixes.xRotation(degreeRadians)); } rotateY(degreeRadians) { - var result = Matrixes.multiplication( - Matrixes.yRotation(degreeRadians), - new Point3d( - this.directionOfGaze()[0], - this.directionOfGaze()[1], - this.directionOfGaze()[2] - ).asMatrix - ); - //this.directionOfGaze = result.slice(0, 3); - - var result2 = Matrixes.multiplication( - Matrixes.yRotation(degreeRadians), - this.position.asMatrix - ); - - var result3 = Matrixes.multiplication( - Matrixes.yRotation(degreeRadians), - this.target.asMatrix - ); - - this.position = new Point3d(result2[0][0], result2[1][0], result2[2][0]); - this.target = new Point3d(result3[0][0], result3[1][0], result3[2][0]); - - return this; + return this.rotate(Matrixes.yRotation(degreeRadians)); } move(movement) {