示例#1
0
        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;
                    }
                    }
                }
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
      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));
      }
示例#4
0
        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);
        }
示例#5
0
        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;
            }
        }
示例#6
0
        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;
            }
        }
示例#7
0
        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;
            }
        }