如何使用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());
}