コード例 #1
0
        /// <summary>
        /// 执行画图的函数
        /// </summary>
        /// <param name="map">地图模型</param>
        public override void draw(MapModel map)
        {
            // 获取画笔
            Graphics g = Graphics.FromImage(img);

            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            g.FillRectangle(backColor, 0, 0, img.Width, img.Height);
            // 画背景的每个部分
            foreach (Segment seg in map.Segments)
            {
                // 将左右侧的点拼接起来
                List <Point> ps = new List <Point>();
                foreach (var lp in seg.LeftP)
                {
                    ps.Add(format.getDrawPoint(lp.x, lp.y));
                }
                for (int i = seg.RightP.Count - 1; i >= 0; --i)
                {
                    ps.Add(format.getDrawPoint(seg.RightP[i].x, seg.RightP[i].y));
                }
                // 点的数量不为0时才画图
                if (ps.Count != 0)
                {
                    g.FillPolygon(freeColor, ps.ToArray());
                }
            }
        }
コード例 #2
0
ファイル: DrawPath.cs プロジェクト: miphas/SmartCarB
        /// <summary>
        /// 绘制路径地图
        /// </summary>
        /// <param name="map"></param>
        public override void draw(MapModel map)
        {
            List <Point> listP = new List <Point>();
            List <int>   typeP = new List <int>();

            for (int i = 0; i < map.Points.Count; ++i)
            {
                KeyPoint p = map.Points[i];
                listP.Add(format.getDrawPoint(p.x, p.y));
                typeP.Add(p.type);
            }
            drawKeyPoints(listP, typeP);
            drawLines(listP, typeP);
        }