示例#1
0
 public static Vector2D FromRoad(Road road)
 {
     Vector2D vector = new Vector2D();
     vector.X = road.To.Position.X - road.From.Position.X;
     vector.Y = road.To.Position.Y - road.From.Position.Y;
     return vector;
 }
示例#2
0
 public Edge(Road road, Vertex from, Vertex to) : base(road.From, road.To, road.Type, road.Partition)
 {
     Source = road;
     VertexFrom = from;
     VertexTo = to;
     Cost = MathExtension.Distance(VertexFrom.Position, VertexTo.Position) / Type.Speed;
 }
示例#3
0
        protected void DrawRoad(Road road, PaintEventArgs args)
        {
            Pen roadPen = new Pen(Color.Black, 2);
            roadPen.CustomEndCap = new AdjustableArrowCap(4, 4);

            if(road.Partition == Partitions.Primary)
                roadPen.Color = Color.Blue;
            if (road.Partition == Partitions.Secondary)
                roadPen.Color = Color.Red;

            args.Graphics.DrawLine(roadPen, GetDrawPosition(road.From.Position), GetDrawPosition(road.To.Position));
        }