Exemplo n.º 1
0
        public Vector3 GetMousePositionOnMapWorldSpace(Vector3 mousePositionScreenSpace)
        {
            //any distance greater than 0 should work, we only need to form a line equation.
            mousePositionScreenSpace.z = 1f;
            var startingPoint = _currentCamera.transform.position;
            var endPoint      = _currentCamera.ScreenToWorldPoint(mousePositionScreenSpace);

            var mapY = _mapTransform.position.y;

            var(x, z) = LineEquations.GetXzGivenY(mapY, startingPoint, endPoint);


            return(new Vector3(x, mapY, z));
        }
Exemplo n.º 2
0
        private void VisualizePerceptron()
        {
            ResetCanvas();
            var testData = factory.Create(DataSetType.TestSet);

            foreach (TestSet point in testData)
            {
                DrawPoint((point.Input[0], point.Input[1], OutputConvertor((int)p.Guess(point.Input))));
            }

            var tmpStartX = p.LineEquations.GetX(-250);
            var tmpEndX   = p.LineEquations.GetX(250);

            DrawLine((tmpStartX, p.LineEquations.GetY(tmpStartX)), (tmpEndX, p.LineEquations.GetY(tmpEndX)));
        }
Exemplo n.º 3
0
        private void VisualizeTraining()
        {
            ResetCanvas();
            var stepData = trainData;

            if (stepData != null)
            {
                foreach (TrainingSet point in trainData)
                {
                    DrawPoint((point.Input[0], point.Input[1], OutputConvertor((int)p.Guess(point.Input))));
                }
            }
            var tmpStartX = p.LineEquations.GetX(-250);
            var tmpEndX   = p.LineEquations.GetX(250);

            DrawLine((tmpStartX, p.LineEquations.GetY(tmpStartX)), (tmpEndX, p.LineEquations.GetY(tmpEndX)));
            p.TrainStep();
        }
        /// <summary>
        /// Finding 4 intersection point of camera frustum on the infinite plane(at mapTransform's height).
        /// Returning the maximum size of a rect that it can be bounded within the 4 intersection point.
        /// </summary>
        public (float minWidth, float distanceToTop, float distanceToBottom) GetViewDistanceToFrustumOnPlaneInWorldSpace(
            Camera editorCamera,
            Transform mapTransform)
        {
            var cameraFrustumCorners = GetFrustumCorners(editorCamera);
            var cameraPosition       = editorCamera.transform.position;
            var targetYPosition      = mapTransform.position.y;
            var intersectionCorners  = new Vector3[cameraFrustumCorners.Length];

            for (var i = 0; i < cameraFrustumCorners.Length; i++)
            {
                var(x, z) = LineEquations.GetXzGivenY(targetYPosition, cameraPosition, cameraFrustumCorners[i]);
                intersectionCorners[i] = new Vector3(x, targetYPosition, z);
            }

            var distanceToTop    = intersectionCorners[1].z - cameraPosition.z;
            var distanceToBottom = cameraPosition.z - intersectionCorners[0].z;
            var minWidth         = intersectionCorners[3].x - intersectionCorners[0].x;

            return(minWidth, distanceToTop, distanceToBottom);
        }