protected override void Start()
 {
     _sceneSize      = SceneObject.Parent.MainCanvas.RenderSize;
     _scaleTransform = new ScaleTransform(1d, 1d);
     SceneObject.RenderTransform.Children.Add(_scaleTransform);
     _route = new Route(SceneObject)
     {
         IsLoop = true
     };
     _route.AddPoint(SceneObject.Parent.GetObjectByName("Point1"));
     _route.AddPoint(SceneObject.Parent.GetObjectByName("Point2"));
     _route.AddPoint(SceneObject.Parent.GetObjectByName("Point3"));
 }
Exemplo n.º 2
0
        public void LengthTest()
        {
            Point p1    = new Point(0, 0);
            Point p2    = new Point(0, 1);
            Point p3    = new Point(1, 1);
            Route route = new Route();

            Assert.AreEqual(0.0, route.GetLength(), 1e-4);
            route.AddPoint(p1);
            Assert.AreEqual(0.0, route.GetLength(), 1e-4);
            route.AddPoint(p2);
            Assert.AreEqual(1.0, route.GetLength(), 1e-4);
            route.AddPoint(p3);
            Assert.AreEqual(2.0, route.GetLength(), 1e-4);
        }
Exemplo n.º 3
0
        public void TestLength()
        {
            Route route = new Route();

            Assert.AreEqual(0, route.GetLength());
            Point p1 = new Point(0.0, 0.0);
            Point p2 = new Point(0.0, 1.0);
            Point p3 = new Point(1.0, 1.0);

            route.AddPoint(p1);
            Assert.AreEqual(0, route.GetLength());
            route.AddPoint(p2);
            Assert.AreEqual(1, route.GetLength());
            route.AddPoint(p3);
            Assert.AreEqual(2, route.GetLength());
        }
Exemplo n.º 4
0
        public void AddPointTest()
        {
            int previousCount = _testRoute.GetRouteCount();

            _testRoute.AddPoint(_p.GetX(), _p.GetY(), 0);
            Assert.AreEqual(previousCount + 1, _testRoute.GetRouteCount());
            Assert.AreEqual(_routePoints[0].GetX(), _p.GetX());
            Assert.AreEqual(_routePoints[0].GetY(), _p.GetY());
        }
Exemplo n.º 5
0
        public Point GetNext()
        {
            Point point = route.Last();

            List <int[]> possible = GetPossibleDirection(point);

            int indexDirection = GenerateIndex(lastIndex, possible);

            while (possible.Count > 1 && !DirectionTrue(point, possible[indexDirection]))
            {
                possible.RemoveAt(indexDirection);
                indexDirection = GenerateIndex(lastIndex, possible);
            }
            lastIndex = indexDirection > 1 ? lastIndex + indexDirection : lastIndex - indexDirection;

            return(route.AddPoint(point.x + possible[indexDirection][0], point.y + possible[indexDirection][1]));
        }
Exemplo n.º 6
0
 public void DrawRoute(GMapMarkerRoute Route, GMapControl gMap1, GMapOverlay routes, MouseEventArgs e)//画线6-18-16:11
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Left)
     {
         PointLatLng point = gMap1.FromLocalToLatLng(e.X, e.Y);
         if (Route == null)
         {
             Route                = new GMapMarkerRoute(point);
             Route.Origin.X       = gMap1.Size.Width / 2;
             Route.Origin.Y       = gMap1.Size.Height / 2;
             Route.OriginOffset.X = 0;
             Route.OriginOffset.Y = 0;
             routes.Markers.Add(Route as GMapMarker); //划线
         }
         Route.AddPoint(point);                       //向路径上添加点
     }
     else if (e.Button == System.Windows.Forms.MouseButtons.Right)
     {
         //记录鼠标按下位
     }
 }
Exemplo n.º 7
0
        public void TestLengthLimit()
        {
            Route route = new Route();

            Assert.AreEqual(0, route.GetLength());
            Point p_0      = new Point(0.0, 0.0);
            Point p_5      = new Point(0.0, 5.0);
            Point p_7_9999 = new Point(0.0, 7.9999);
            Point p_8      = new Point(0.0, 8.0);
            Point p_8_0001 = new Point(0.0, 8.0001);
            Point p_10     = new Point(0.0, 10.0);

            Assert.IsTrue(route.AddPoint(p_0));
            Assert.IsTrue(route.AddPoint(p_5));
            Assert.IsTrue(route.AddPoint(p_7_9999));
            Assert.IsTrue(route.AddPoint(p_8));
            Assert.IsFalse(route.AddPoint(p_8_0001));
            Assert.IsFalse(route.AddPoint(p_10));
        }
        /// <summary>
        /// Generate random route
        /// </summary>
        private void CreateRoute()
        {
            var latLon = _initLatLon;
            var previousLatLon = _initLatLon;

            // Get liters
            var liters = double.Parse(TxLiters.Text, System.Globalization.NumberStyles.Any);

            // Get consumption
            var consumption = double.Parse(TxConsumption.Text, System.Globalization.NumberStyles.Any);

            // Route instance
            _route = new Route(new List<GLatLng>(), liters, consumption);

            // Create A point
            GMapControl.Add(new GMarkerWrapper(latLon, "A", Color.DarkMagenta));

            // Add initial point to route
            _route.AddPoint(latLon);

            // Save initial distance in the current latlon
            _route.SaveRemainingDistance(latLon);

            var i = 0;
            do
            {
                // Generate random route changing his lat or lan depending the condition
                latLon = i % 2 == 0 ? latLon.GetRandomLon(20000, 40000) : latLon.GetRandomLat(20000, 40000);

                // Add to points list
                _route.AddPoint(latLon);

                // Get remaining distance in this latlon
                _route.CalculateRemainigDistance(latLon, previousLatLon);

                // Save remaining distance in the current latlon
                _route.SaveRemainingDistance(latLon);

                previousLatLon = latLon;

                i++;
            } while (_initLatLon.distanceFrom(latLon) <= 230000);

            // Create B point
            GMapControl.Add(new GMarkerWrapper(latLon, "B", Color.DarkMagenta));

            // Create route
            GMapControl.Add(_route);
        }
Exemplo n.º 9
0
 public Generator()
 {
     route = new Route();
     route.AddPoint(0, 0);
     route.AddPoint(0, 1);
 }