博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# asp.net 用直线画路线图
阅读量:6164 次
发布时间:2019-06-21

本文共 1720 字,大约阅读时间需要 5 分钟。

公司做的时无线定位,客户要求在平面图上作出一个轨迹图来。工作日浅,之前没做过类似的东西,不知道从何下手,而且公司里边就我一个开发,搞需求,后期实施都是我一个,所以问也就无从问起。想到C#里有一个画直线和圆的方法,觉得也能应用吧。经客户同意,两个无线站点间表示移动轨迹用直线连接。

下边是画点和直线的代码(点表示人所在位置,颜色表示状态,如:蓝色为正常,红色为报警):

 private void Drawing(int x,int y,Color color) //x,y为当前移动到的坐标

        {
            if (startFlag == true) //startFlag 判断是否是第一次画
            {
                startFlag = false;
                btmLine = new Bitmap(@"D:\zthk\zthk\TwoFloor.jpg");//初始化直线位图图像
                //画一个圆点
                grp = Graphics.FromImage(bm);
                Pen pen = new Pen(new SolidBrush(color), 0.5f);//声明单色画笔
                Rectangle rg = new Rectangle(x, y, 8, 8);//初始化一个矩形
                grp.DrawEllipse(pen, rg);
                grp.FillEllipse(new SolidBrush(color), rg);
                //保存图片数据
                MemoryStream stream = new MemoryStream();
                bm.Save(stream, ImageFormat.Jpeg);
                //输出图片
                Response.Clear();
                Response.ContentType = "image/jpeg";
                Response.BinaryWrite(stream.ToArray());
            }
            else
            {
                grp = Graphics.FromImage(btmLine);
                try
                {
                    grp.DrawLine(penLine, new Point(startX, startY), new Point(x, y));
                    MemoryStream temp = new MemoryStream();
                    btmLine.Save(temp, ImageFormat.Jpeg);
                    MemoryStream Line = temp;
                    Bitmap btmPoint = new Bitmap(temp);//用之前的直线位图初始化点位图
                    btmLine = new Bitmap(Line);//重新初始化直线位图
                    grp = Graphics.FromImage(btmPoint);
                    Pen pen = new Pen(new SolidBrush(color), 0.5f);
                    Rectangle rg = new Rectangle(x, y, 8, 8);
                    grp.DrawEllipse(pen, rg);
                    grp.FillEllipse(new SolidBrush(color), rg);
                    //保存图片数据
                    MemoryStream consoleStream = new MemoryStream();
                    bm.Save(consoleStream, ImageFormat.Jpeg);

                    //输出图片

                    Response.Clear();
                    Response.ContentType = "image/jpeg";
                    Response.BinaryWrite(consoleStream.ToArray());
                }
                finally
                {
                    //释放资源
                    grp.Dispose();
                    bm.Dispose();
                    btmLine.Dispose();
                    btmPoint.Dispose();
                }
                startX = x;//记录X坐标
                startY = y;//记录Y坐标

            }

        }

 本人新手,请老鸟们多多指教。

转载于:https://www.cnblogs.com/weichengxianyonghu/archive/2012/03/19/2405862.html

你可能感兴趣的文章
并发容器之CopyOnWriteArrayList(转载)
查看>>
什么是AAC音频格式 AAC-LC 和 AAC-HE的区别是什么
查看>>
原创:goldengate从11.2升级到12.1.2
查看>>
Quartz
查看>>
正则表达式的语法规则
查看>>
C#一个关于委托和事件通俗易懂的例子
查看>>
类似于SVN的文档内容差异对比工具winmerge
查看>>
Cause: java.sql.SQLException: The user specified as a definer ('root'@'%') does not exist
查看>>
quratz线程
查看>>
execnet: rapid multi-Python deployment
查看>>
windows修改3389端口
查看>>
关于JavaScript词法
查看>>
FreeSwitch中的会议功能(4)
查看>>
MySQL中创建用户分配权限(到指定数据库或者指定数据库表中)
查看>>
AutoReleasePool 和 ARC 以及Garbage Collection
查看>>
重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础
查看>>
乐在其中设计模式(C#) - 提供者模式(Provider Pattern)
查看>>
MVP Community Camp 社区大课堂
查看>>
GWT用frame调用JSP
查看>>
大型高性能ASP.NET系统架构设计
查看>>