Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#获取动态多边形坐标(从外部文件)并在图片框上显示多边形形状_C# - Fatal编程技术网

如何使用c#获取动态多边形坐标(从外部文件)并在图片框上显示多边形形状

如何使用c#获取动态多边形坐标(从外部文件)并在图片框上显示多边形形状,c#,C#,我需要能够获得坐标,并根据给定的坐标绘制多边形 private void pictureBox1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics g; g = this.CreateGraphics(); g = Graphics.FromImage(pictureBox1.Image); Pen p =

我需要能够获得坐标,并根据给定的坐标绘制多边形

private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            System.Drawing.Graphics g;
            g = this.CreateGraphics();
            g = Graphics.FromImage(pictureBox1.Image);
            Pen p = new Pen(Color.Black, 5);
            Point[] a = { new Point(100, 100), new Point(200, 100), new 
            Point(300, 200), new Point(200, 200), new Point(100, 400) };
            g.DrawPolygon(p, a);
            g.Dispose();
            pictureBox1.Refresh();
此代码用于绘制具有预定义点的简单多边形,但我需要从包含这些点的现有文件中动态获取这些点。

private void button1\u单击(对象发送器,事件参数e)
  private void button1_Click(object sender, EventArgs e)
        {
            string line;

            List<PointF> polygonData = new List<PointF>();                          
            System.Drawing.Graphics g;

            //drawing on picture box
            g = Graphics.FromImage(pictureBox1.Image);                
            Pen p = new Pen(Color.Black, 5);

            //a loop to collect all points available in the file
            while ((line = file.ReadLine()) != null)                     
            {
                var tokens = line.Split(splitChars);

                lat = float.Parse(tokens[0].ToString());
                longi = float.Parse(tokens[1].ToString());              

                polygonData.Add(new PointF(lat, longi));

            }

            if (polygonData.Count > 1)
            {
                //draw polygon based on points parsed to the loop
                  g.DrawPolygon(p, polygonData.ToArray());

            }
{ 弦线; List polygonData=新列表(); System.Drawing.Graphics g; //画在画框上 g=Graphics.FromImage(pictureBox1.Image); 笔p=新笔(颜色为黑色,5); //用于收集文件中所有可用点的循环 而((line=file.ReadLine())!=null) { var标记=行分割(分割字符); lat=float.Parse(标记[0].ToString()); longi=float.Parse(标记[1].ToString()); 添加(新点F(横向、纵向)); } 如果(polygonda.Count>1) { //基于解析到循环的点绘制多边形 g、 DrawPolygon(p,polygonda.ToArray()); }
私有无效按钮1\u单击(对象发送者,事件参数e)
{
弦线;
List polygonData=新列表();
System.Drawing.Graphics g;
//画在画框上
g=Graphics.FromImage(pictureBox1.Image);
笔p=新笔(颜色为黑色,5);
//用于收集文件中所有可用点的循环
而((line=file.ReadLine())!=null)
{
var标记=行分割(分割字符);
lat=float.Parse(标记[0].ToString());
longi=float.Parse(标记[1].ToString());
添加(新点F(横向、纵向));
}
如果(polygonda.Count>1)
{
//基于解析到循环的点绘制多边形
g、 DrawPolygon(p,polygonda.ToArray());
}