首页 新闻 会员 周边 捐助

c#已知坐标点数组的情况下用Graphics画点。

0
悬赏园豆:50 [已解决问题] 解决于 2020-04-01 09:43

想在Panel上用下面的Lx / ratio、Ly / ratio当做横纵坐标画点,用这个方法

grp.FillEllipse(Brushes.Red, pps [i].x, pps[i].y , 2, 2);

但是总是错误提示 无效参数
FillEllipse()方法中,后4位是整数,上面的pps [i].x,类型是整数吗
想请教一下大家有什么比较好的方法,把点画出来吗

List<point1> ps = new List<point1>();

            for (int i = 0; i < table.Rows.Count; i++)//遍历每一行
            {
                for (int j = 0; j < table.Columns.Count; j++)//遍历列
                {
                    x = Convert.ToDouble(table.Rows[i][0]);
                    y = Convert.ToDouble(table.Rows[i][1]);

                    double Lx = maxLatitude - x;
                    double Ly = y - minLongitude;
                    //MessageBox.Show(Ly + "");

                    point1 p = new point1();
                    p.x = (int)(Lx / ratio);
                    //MessageBox.Show(Ly/ratio+"");
                    p.y = (int)(Ly / ratio);
                    ps.Add(p);
                    //MessageBox.Show(ps+"");看不出来

                }
            }
            //画图

            int [] psx = ps.Select(p => p.x).ToArray();
            int[] psy = ps.Select(p => p.y).ToArray();
            
            point1[] pps = ps.ToArray();
            
            Graphics grp = panel1.CreateGraphics();
            Pen ppen = new Pen(Color.Red, 1);
        
            for (int i = 0; i < psx.Length-1; i++)
            {
                    grp.FillEllipse(Brushes.Red, pps [i].x, pps[i].y , 2, 2);
                    grp.Dispose();
            }
        }
        
        public class point1
        {
            public int x { get; set; }
            public int y { get; set; }
        }
问题补充:

写完之后,下面并没有错误提示,调试的时候提示错误:无效参数

清风配酒的主页 清风配酒 | 初学一级 | 园豆:21
提问于:2020-03-30 12:50
< >
分享
最佳答案
0

你这段代码问题有点多

  1. 第二个for循环看起来没有什么用
  2. psx和psy看起来没有什么用
  3. pps那行ToArray毫无意义
  4. point1没有什么用
  5. 最重要的,在for循环中进行了Dispose操作,第二次画点的时候肯定会失败啊
收获园豆:50
拓拓 | 小虾三级 |园豆:1050 | 2020-03-30 14:49

谢谢,按照这个方法解决了

清风配酒 | 园豆:21 (初学一级) | 2020-04-01 09:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册