/// <summary> /// Draws all the given trade routes. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DrawTradeRoutes(object sender, HexagonGridDrawEventArgs e) { TradeRoute[] routes; PointF start = new PointF(); PointF end = new PointF(); using (SectorContext db = new SectorContext()) { if (db.routes.Count() > 0) { //routes = (from r in db.routes // select r).ToArray(); routes = db.routes.ToArray(); } else { routes = null; //throw new Exception("Route count is zero!"); } } if (routes != null) { foreach (TradeRoute r in routes) { RegularHexagon hex1 = e.grid.Hexagons[r.star1Y, r.star1X]; RegularHexagon hex2 = e.grid.Hexagons[r.star2Y, r.star2X]; start = PointBetween(hex1.center, hex2.center, routePercentFromCenter); end = PointBetween(hex2.center, hex1.center, routePercentFromCenter); e.gr.DrawLine(routePen, start, end); } } }
private void DrawRegularHexagon_OnClick_Click(object sender, RoutedEventArgs e) { if (Point.CheckOutput(SetUpFirstXValue.Text) && Point.CheckOutput(SetUpFirstYValue.Text) && Point.CheckOutput(SetHexagonSide.Text)) { int firstPointX = Int32.Parse(SetUpFirstXValue.Text); int firstPointY = Int32.Parse(SetUpFirstYValue.Text); int side = Int32.Parse(SetHexagonSide.Text); Point firstPoint = new Point(firstPointX, firstPointY); IFigure figure = new RegularHexagon(firstPoint, side); Frame.Navigate(typeof(DrawFigure), figure); } else { SetUpFirstXValue.Text = ""; SetUpFirstYValue.Text = ""; SetHexagonSide.Text = ""; } }