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; }
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; }
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)); }