Example #1
0
        /// <summary>
        /// Converts an array of angles in degrees or radians into an array of the sines, cosines, or tangents based on the func parameter.
        /// </summary>
        /// <param name="angles"></param>
        /// <param name="func"></param>
        /// <param name="units"></param>
        /// <returns>Depending on func parameter will return an array of sines, cosines, or tangents.</returns>
        /// <exception cref="InvalidOperationException"></exception>
        private Double[] GetComponents(Double[] angles, TrigFunctions func, Units units = Units.Radians)
        {
            Double[] comps = new Double[angles.Count()];

            if (units == Units.Degrees)
            {
                angles = Deg2Rad(angles);
            }

            for (int i = 0; i < angles.Length; i++)
            {
                if (func == TrigFunctions.Cosine)
                {
                    comps[i] = System.Math.Cos(angles[i]);
                }
                else if (func == TrigFunctions.Sine)
                {
                    comps[i] = System.Math.Sin(angles[i]);
                }
                else if (func == TrigFunctions.Tangent)
                {
                    comps[i] = System.Math.Tan(angles[i]);
                }
                else
                {
                    throw new InvalidOperationException();
                }
            }

            return(comps);
        }
Example #2
0
        private string FormatComplex(Complex cplx)
        {
            var sb = new StringBuilder();

            sb.Append("R: ");
            sb.Append(cplx.Real);
            sb.Append(" i: ");
            sb.Append(cplx.Imaginary);
            sb.Append("\r\n φ: ");
            switch (Engine.Mode)
            {
            case TrigMode.DEG:
                sb.Append(TrigFunctions.Rad2Deg(cplx.Phase));
                sb.Append(" °");
                break;

            case TrigMode.GRAD:
                sb.Append(TrigFunctions.Rad2Grad(cplx.Phase));
                sb.Append(" grad");
                break;

            case TrigMode.RAD:
                sb.Append(cplx.Phase);
                sb.Append(" rad");
                break;
            }
            sb.Append(" ABS: ");
            sb.Append(cplx.Magnitude);
            return(sb.ToString());
        }
    private void MoveGameObject()
    {
        currentXPosition = transform.position.x;
        currentYPosition = transform.position.y;

        xMoveDirection = SetMoveDirection(previousMarkerXPos, thisMarkerXPos);
        yMoveDirection = SetMoveDirection(previousMarkerYPos, thisMarkerYPos);

        xDistanceMarkerToMarker = TrigFunctions.FindDistance(previousMarkerXPos, thisMarkerXPos);
        yDistanceMarkerToMarker = TrigFunctions.FindDistance(previousMarkerYPos, thisMarkerYPos);

        xPerFrameMoveDistance = CalcAxisMoveDistance(xDistanceMarkerToMarker, xMoveDirection);
        yPerFrameMoveDistance = CalcAxisMoveDistance(yDistanceMarkerToMarker, yMoveDirection);

        straightPerFrameMoveDistance = TrigFunctions.PythagoreanTheorem(xPerFrameMoveDistance, yPerFrameMoveDistance);

        scaleFactorPerFrame = (fullScale - startingScale) / (distanceToScaleUp / straightPerFrameMoveDistance);

        newXPosEachFrame = currentXPosition + xPerFrameMoveDistance;
        newYPosEachFrame = currentYPosition + yPerFrameMoveDistance;

        SetGameObjectPosAndStat();

        SetGameObjectScale();
    }
Example #4
0
    private void SetMoveDistances()
    {
        totalXDistStartToEnd = TrigFunctions.FindDistance(cameraStartPos.x, cameraEndPos.x);
        totalYDistStartToEnd = TrigFunctions.FindDistance(cameraStartPos.y, cameraEndPos.y);

        camXPerFrameMoveDist = (totalXDistStartToEnd / moveSpeed) * Time.deltaTime * SetMoveDirection(cameraStartPos.x, cameraEndPos.x);
        camYPerFrameMoveDist = (totalYDistStartToEnd / moveSpeed) * Time.deltaTime * SetMoveDirection(cameraStartPos.y, cameraEndPos.y);
    }
    private float CalcFlightDistances(float startXPos, float endXPos, float startYPos, float endYPos)
    {
        currentXPosition = transform.position.x;
        currentYPosition = transform.position.y;

        float xDistStartToEnd = TrigFunctions.FindDistance(startXPos, endXPos);
        float yDistStartToEnd = TrigFunctions.FindDistance(startYPos, endYPos);

        return(TrigFunctions.PythagoreanTheorem(xDistStartToEnd, yDistStartToEnd));
    }
    // Update is called once per frame
    void FixedUpdate()
    {
        currentPos = new Vector3(transform.position.x, transform.position.y, 0f);

        if (TrigFunctions.PythagoreanTheorem(TrigFunctions.FindDistance(currentPos.x, startingPos.x), TrigFunctions.FindDistance(currentPos.y, startingPos.y)) > (25f * movementFactor))
        {
            Instantiate(trailDot, currentPos, Quaternion.identity, dotsParentTran.transform);
            startingPos = new Vector3(transform.position.x, transform.position.y, 0f);
        }
    }
Example #7
0
        public void SlopeToBase()
        {
            //Arrange
            var slope            = 5.418m;
            var angle            = 26.5651m;
            var expectedResponse = 4.846m;

            //Act
            var response = Math.Round(TrigFunctions.SlopeToBase(slope, angle), 4);

            //Assert
            Assert.AreEqual(expectedResponse, response);
        }
Example #8
0
        public void BaseToRise()
        {
            //Arrange
            var bayse            = 4.21m;
            var angle            = 26.5651m;
            var expectedResponse = 2.105m;

            //Act
            var response = Math.Round(TrigFunctions.BaseToRise(bayse, angle), 4);

            //Assert
            Assert.AreEqual(expectedResponse, response);
        }
Example #9
0
        public void BaseToSlope()
        {
            //Arrange
            var bayse            = 12m;
            var angle            = 26.5651m;
            var expectedResponse = 13.4164m;

            //Act
            var response = Math.Round(TrigFunctions.BaseToSlope(bayse, angle), 4);

            //Assert
            Assert.AreEqual(expectedResponse, response);
        }
Example #10
0
        public void BaseRiseToSlope()
        {
            //Arrange
            var bayse            = 3m;
            var userRise         = 4m;
            var expectedResponse = 5m;

            //Act
            var response = Math.Round(TrigFunctions.BaseRiseToSlope(bayse, userRise), 4);

            //Assert
            Assert.AreEqual(expectedResponse, response);
        }
Example #11
0
        public void BaseRiseToRadian()
        {
            //Arrange
            var bayse          = 12m;
            var rise           = 1m;
            var expectedRadian = 0.0831m;

            //Act
            var radian = Math.Round(TrigFunctions.BaseRiseToRadian(bayse, rise), 4);

            //Assert
            Assert.AreEqual(expectedRadian, radian);
        }
Example #12
0
        public void RiseToBase()
        {
            //Arrange
            var rise             = 1.21m;
            var angle            = 26.5651m;
            var expectedResponse = 2.42m;

            //Act
            var response = Math.Round(TrigFunctions.RiseToBase(rise, angle), 4);

            //Assert
            Assert.AreEqual(expectedResponse, response);
        }
Example #13
0
 private void Beta_ValueChanged(object sender, RoutedEventArgs e)
 {
     try
     {
         TbError.Visibility = Visibility.Collapsed;
         var newb     = TrigFunctions.Tan(Beta.Value) * A.Value;
         var newAlpha = 90 - Beta.Value;
         if (newAlpha <= 0 || double.IsNaN(newAlpha))
         {
             throw new ArgumentException();
         }
         var newC = Math.Sqrt((newb * newb) + (A.Value * A.Value));
         C.SetValue(newC);
         B.SetValue(newb);
         Alpha.SetValue(newAlpha);
     }
     catch (Exception)
     {
         TbError.Visibility = Visibility.Visible;
     }
 }
Example #14
0
 private void Alpha_ValueChanged(object sender, RoutedEventArgs e)
 {
     try
     {
         TbError.Visibility = Visibility.Collapsed;
         var newa    = TrigFunctions.Tan(Alpha.Value) * B.Value;
         var newBeta = 90 - Alpha.Value;
         if (newBeta <= 0 || double.IsNaN(newBeta))
         {
             throw new ArgumentException();
         }
         var newC = Math.Sqrt((B.Value * B.Value) + (newa * newa));
         C.SetValue(newC);
         A.SetValue(newa);
         Beta.SetValue(newBeta);
     }
     catch (Exception)
     {
         TbError.Visibility = Visibility.Visible;
     }
 }
Example #15
0
 private void C_ValueChanged(object sender, RoutedEventArgs e)
 {
     try
     {
         TbError.Visibility = Visibility.Collapsed;
         var newB     = Math.Sqrt((C.Value * C.Value) - (B.Value * B.Value));
         var newAlpha = TrigFunctions.ArcSin(newB / C.Value);
         var newBeta  = 90 - newAlpha;
         if (newBeta <= 0 || double.IsNaN(newBeta))
         {
             throw new ArgumentException();
         }
         B.SetValue(newB);
         Alpha.SetValue(newAlpha);
         Beta.SetValue(newBeta);
     }
     catch (Exception)
     {
         TbError.Visibility = Visibility.Visible;
     }
 }