public void InsertValues(Array3x3 inputArray) { for (int i = 0; i < inputArray.secondListOfPoints.Count; i++) { for (int j = 0; j < 3; j++) { secondListOfPoints[i].listOfCoordinates[j] = inputArray.secondListOfPoints[i].listOfCoordinates[j]; switch (j) { case 0: { secondListOfPoints[i].X = inputArray.secondListOfPoints[i].listOfCoordinates[j]; break; } case 1: { secondListOfPoints[i].Y = inputArray.secondListOfPoints[i].listOfCoordinates[j]; break; } case 2: { secondListOfPoints[i].H = inputArray.secondListOfPoints[i].listOfCoordinates[j]; break; } } } } }
public void MultiplyArrays(Array3x3 left, Array3x3 right) { Array3x3 resultArray = new Array3x3(); resultArray.Initialize(); float buffer = 0; for (int k = 0; k < left.secondListOfPoints.Count; k++) { if (k >= 3) { resultArray.AddRow(new OurPoint(0, 0, 0)); } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { buffer += left.secondListOfPoints[k].listOfCoordinates[j] * right.secondListOfPoints[j].listOfCoordinates[i]; } resultArray.secondListOfPoints[k].listOfCoordinates[i] = buffer; buffer = 0; } } if (left.secondListOfPoints.Count != 1) { InsertValues(resultArray); } }
public void Rotate(double inputAngle) { double angle = inputAngle * 3.14 / 180; Array3x3 MoveMatrix = new Array3x3(); MoveMatrix.AddRow(new OurPoint((float)Math.Cos(inputAngle), -(float)Math.Sin(inputAngle), 0)); MoveMatrix.AddRow(new OurPoint((float)Math.Sin(inputAngle), (float)Math.Cos(inputAngle), 0)); MoveMatrix.AddRow(new OurPoint(0, 0, 1)); }
public Array3x3 ToCopy() { Array3x3 buffer = new Array3x3(); for (int i = 0; i < secondListOfPoints.Count; i++) { buffer.AddRow(new OurPoint(secondListOfPoints[i].X, secondListOfPoints[i].Y, secondListOfPoints[i].H)); } return(buffer); }
public void Move(int x, int y) { Array3x3 MoveMatrix = new Array3x3(); MoveMatrix.AddRow(new OurPoint(1, 0, 0)); MoveMatrix.AddRow(new OurPoint(0, 1, 0)); MoveMatrix.AddRow(new OurPoint(x, y, 1)); ourArrays.MultiplyArrays(ourArrays, MoveMatrix); for (int i = 0; i < ourArrays.secondListOfPoints.Count; i++) { if (i == 0) { StartPointX = ourArrays.secondListOfPoints[i].X; StartPointY = ourArrays.secondListOfPoints[i].Y; } listOfPoints[i].X = ourArrays.secondListOfPoints[i].X; listOfPoints[i].Y = ourArrays.secondListOfPoints[i].Y; } }
public void Increase() { Array3x3 MoveMatrix = new Array3x3(); MoveMatrix.AddRow(new OurPoint((float)1.5, 0, 0)); MoveMatrix.AddRow(new OurPoint(0, (float)1.5, 0)); MoveMatrix.AddRow(new OurPoint(0, 0, 1)); ourArrays.MultiplyArrays(ourArrays, MoveMatrix); for (int i = 0; i < ourArrays.secondListOfPoints.Count; i++) { if (i == 0) { StartPointX = ourArrays.secondListOfPoints[i].X; StartPointY = ourArrays.secondListOfPoints[i].Y; } listOfPoints[i].X = ourArrays.secondListOfPoints[i].X; listOfPoints[i].Y = ourArrays.secondListOfPoints[i].Y; } }
public void Rotate(double inputAngle) { double angle = inputAngle * 3.14 / 180; Array3x3 MoveMatrix = new Array3x3(); MoveMatrix.AddRow(new OurPoint((float)Math.Cos(inputAngle), -(float)Math.Sin(inputAngle), 0)); MoveMatrix.AddRow(new OurPoint((float)Math.Sin(inputAngle), (float)Math.Cos(inputAngle), 0)); MoveMatrix.AddRow(new OurPoint(0, 0, 1)); ourArrays.MultiplyArrays(ourArrays, MoveMatrix); for (int i = 0; i < ourArrays.secondListOfPoints.Count; i++) { if (i == 0) { StartPointX = ourArrays.secondListOfPoints[i].X; StartPointY = ourArrays.secondListOfPoints[i].Y; } listOfPoints[i].X = ourArrays.secondListOfPoints[i].X; listOfPoints[i].Y = ourArrays.secondListOfPoints[i].Y; } }