public RouteDrawer(string id1, string name1, double sx, double sy, string id2, string name2, double ex, double ey, long id) { spoint = new PointDrawer(id1, name1, sx, sy); epoint = new PointDrawer(id2, name2, ex, ey); this.id = id; }
private static void DrawPoints(PointType type, PointDrawer[] points, Graphics g) { for (int i = 0; i < points.GetLength(0); i++) { DrawPoint(type, points[i], g); } }
private static void DrawPoint(PointType type, PointDrawer point, Graphics g) { Pen MyPen; switch (type) { case PointType.CENTER: MyPen = new Pen(Color.Purple, 4); g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 8, 8); break; case PointType.EDAGE: MyPen = new Pen(Color.Blue, 2); g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 4, 4); break; case PointType.NORMAL: MyPen = new Pen(Color.White, 2); g.DrawEllipse(MyPen, (float)(point.Longtitude), (float)point.Latitude, 3, 3); break; case PointType.GROUP: MyPen = new Pen(Color.Blue, 3); g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 5, 5); break; } }
public PointDrawer(PointDrawer p) { id = p.id; Longtitude = p.Longtitude; Latitude = p.Latitude; name = p.name; }
/// <summary> /// 绘制初始画板 /// </summary> public void DrawSimuMap(List <NodeBean> lnb, List <LinkBean> lnr) { if (pl == null) { pl = (DrawConverter(lnb)); } // 将pl转化为实际值 List <PointDrawer> lpd = convertToTrueListPoints(pl); PointDrawer.Draw(PointType.NORMAL, lpd.ToArray(), this.graph); // List <TextDrawer> tl = new List <TextDrawer>(); foreach (PointDrawer p in lpd) { tl.Add(new TextDrawer(p.name, (int)(p.Longtitude + 10), (int)(p.Latitude - 5))); } TextDrawer.Draw(TextType.NORMAL, tl.ToArray(), this.graph); // 将lrd转化为实际值 if (lrd == null) { lrd = DrawConverter(lnr); } List <RouteDrawer> lld = convertToTrueListRoutes(lrd, lpd); RouteDrawer.Draw(RouteType.NORMAL, lld.ToArray(), this.graph); }
private List <RouteDrawer> convertToTrueListRoutes(List <RouteDrawer> lr_temp, List <PointDrawer> lp_temp, PointDrawer center) { List <RouteDrawer> lld = new List <RouteDrawer>(); foreach (RouteDrawer ld in lr_temp) { PointDrawer sp = lp_temp.Find(delegate(PointDrawer pd) { return(pd.id.Equals(ld.spoint.id)); }); PointDrawer ep = lp_temp.Find(delegate(PointDrawer pd) { return(pd.id.Equals(ld.epoint.id)); }); if (sp != null && ep != null) { RouteDrawer rd = new RouteDrawer(sp, ep, ld.id); lld.Add(rd); } else if (sp == null || ep == null) { RouteDrawer rd = (sp == null) ? new RouteDrawer(center, ep, ld.id) : new RouteDrawer(sp, center, ld.id); lld.Add(rd); } } return(lld); }
public void DrawPointer(NodeBean nodebean) { List <PointDrawer> lpd_temp = new List <PointDrawer>(); List <RouteDrawer> lrd_temp = new List <RouteDrawer>(); foreach (RouteDrawer rd in lrd) { if (rd.spoint.id.Equals(nodebean.id)) { lpd_temp.Add(rd.epoint); lrd_temp.Add(rd); } if (rd.epoint.id.Equals(nodebean.id)) { lpd_temp.Add(rd.spoint); lrd_temp.Add(rd); } } PointDrawer p = findPointerById(nodebean.id); PointDrawer p_new = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height); Draw(DrawItem.POINT, PointType.CENTER, p_new); List <PointDrawer> lpp = convertToTrueListPoints(lpd_temp); Draw(DrawItem.POINT, PointType.EDAGE, lpp.ToArray()); List <RouteDrawer> ll = convertToTrueListRoutes(lrd_temp, lpp, p_new); Draw(DrawItem.ROUTE, RouteType.EDAGE, ll.ToArray()); graph.Flush(); }
private List <PointDrawer> convertToTrueListPoints(List <PointDrawer> lpl) { List <PointDrawer> lpd = new List <PointDrawer>(); foreach (PointDrawer p in lpl) { PointDrawer pd = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height); lpd.Add(pd); } return(lpd); }
private List <PointDrawer> convertToTrueListPoints(List <NodeBean> lnb) { List <PointDrawer> lp_temp = new List <PointDrawer>(); foreach (NodeBean node in lnb) { PointDrawer p = findPointerById(node.id); if (p != null) { lp_temp.Add(new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height)); } } return(lp_temp); }
/// <summary> /// 通用绘图方式 /// </summary> /// <param name="item">绘制项目</param> /// <param name="name">绘图名称</param> /// <param name="type">绘制类型</param> private void Draw(DrawItem item, object type, object obj) { switch (item) { case DrawItem.POINT: PointDrawer.Draw(type, obj, graph); // 空缺处可以是PointDrawer 也可以是PointDrawer[] break; case DrawItem.ROUTE: RouteDrawer.Draw(type, obj, graph); // 空缺处可以是RouteDrawer 也可以是RouteDrawer[] break; case DrawItem.TEXT: break; } }
private List<PointDrawer> convertToTrueListPoints(List<PointDrawer> lpl) { List<PointDrawer> lpd = new List<PointDrawer>(); foreach (PointDrawer p in lpl) { PointDrawer pd = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height); lpd.Add(pd); } return lpd; }
public RouteDrawer(RouteDrawer r) { this.spoint = new PointDrawer(r.spoint); this.epoint = new PointDrawer(r.epoint); this.id = r.id; }
public RouteDrawer(PointDrawer s, PointDrawer e, long id) { spoint = new PointDrawer(s); epoint = new PointDrawer(e); this.id = id; }
public RouteDrawer(PointDrawer s, PointDrawer e) { spoint = new PointDrawer(s); epoint = new PointDrawer(e); this.id = 0; }
public long id; // 所属道路Id public RouteDrawer(RouteDrawer r) { this.spoint = new PointDrawer(r.spoint); this.epoint = new PointDrawer(r.epoint); this.id = r.id; }
public void DrawPointer(NodeBean nodebean) { List<PointDrawer> lpd_temp = new List<PointDrawer>(); List<RouteDrawer> lrd_temp = new List<RouteDrawer>(); foreach(RouteDrawer rd in lrd) { if (rd.spoint.id.Equals(nodebean.id)) { lpd_temp.Add(rd.epoint); lrd_temp.Add(rd); } if (rd.epoint.id.Equals(nodebean.id)) { lpd_temp.Add(rd.spoint); lrd_temp.Add(rd); } } PointDrawer p = findPointerById(nodebean.id); PointDrawer p_new = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height); Draw(DrawItem.POINT, PointType.CENTER, p_new); List<PointDrawer> lpp = convertToTrueListPoints(lpd_temp); Draw(DrawItem.POINT, PointType.EDAGE, lpp.ToArray()); List<RouteDrawer> ll = convertToTrueListRoutes(lrd_temp, lpp, p_new); Draw(DrawItem.ROUTE, RouteType.EDAGE, ll.ToArray()); graph.Flush(); }
private List<RouteDrawer> convertToTrueListRoutes(List<RouteDrawer> lr_temp, List<PointDrawer> lp_temp, PointDrawer center) { List<RouteDrawer> lld = new List<RouteDrawer>(); foreach (RouteDrawer ld in lr_temp) { PointDrawer sp = lp_temp.Find(delegate(PointDrawer pd) { return pd.id.Equals(ld.spoint.id); }); PointDrawer ep = lp_temp.Find(delegate(PointDrawer pd) { return pd.id.Equals(ld.epoint.id); }); if (sp != null && ep != null) { RouteDrawer rd = new RouteDrawer(sp, ep, ld.id); lld.Add(rd); } else if(sp == null || ep == null) { RouteDrawer rd = (sp == null) ? new RouteDrawer(center, ep, ld.id) : new RouteDrawer(sp ,center, ld.id); lld.Add(rd); } } return lld; }