예제 #1
0
        public float diagonalLenght(int zoom)
        {
            Coordinates center = tileCenter(zoom);
            Coordinates origin = tileOrigin(zoom);

            return(2 * Mathf.Abs(Vector2.Distance(center.convertCoordinateToVector2D(), origin.convertCoordinateToVector2D())));
        }
        public float FindAltitudeForCoordinate(Coordinates inputCoordinate, Coordinates tileOrigin)
        {
            float stepSizeWidth  = tileSize.x;
            float stepSizeHeight = tileSize.y;

            //Move the tile origin to match the DEM origin
            Vector2 fixedOrigin = tileOrigin.convertCoordinateToVector2D() - new Vector2(0, tileSize.y);

            float x = 0;
            float z = 0;

            //Convert coords to unity
            Vector2 input = inputCoordinate.convertCoordinateToVector2D();

            //Compute the distance for each axis
            x = input.x - fixedOrigin.x;
            z = input.y - fixedOrigin.y;

            //Adapt the values to the stepsize
            x = width * x / stepSizeWidth;
            z = height * z / stepSizeHeight;

            Color32 c32 = calculateColor(new Vector2(x, z), Vector2.zero, new Vector2(width, this.height));

            float h = ConvertColorToAltitude(c32);

            h = h * altitudeMultiplier;

            return(h);
        }