我有一个这种格式的数据表
ID X-coordinate Y-coordinate
我想创建一个网格,在节点上有ID,并根据X,Y位置连接到相邻ID。关于这样做的任何建议,我以前从未做过任何绘图。感谢
答案 0 :(得分:2)
在表单上放置一个面板:
private DataTable dt;
public Form1() {
InitializeComponent();
dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("XCord", typeof(int));
dt.Columns.Add("YCord", typeof(int));
DataRow dr1 = dt.NewRow();
dr1["ID"] = 1;
dr1["XCord"] = 10;
dr1["YCord"] = 10;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["ID"] = 2;
dr2["XCord"] = 10;
dr2["YCord"] = 50;
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["ID"] = 3;
dr3["XCord"] = 25;
dr3["YCord"] = 50;
dt.Rows.Add(dr3);
panel1.Paint += panel1_Paint;
}
这是绘画方法:
private void panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.Clear(Color.White);
for (int i = 1; i < dt.Rows.Count; i++) {
e.Graphics.DrawLine(Pens.Red,
new Point(Convert.ToInt32(dt.Rows[i - 1]["XCord"]), Convert.ToInt32(dt.Rows[i - 1]["YCord"])),
new Point(Convert.ToInt32(dt.Rows[i]["XCord"]), Convert.ToInt32(dt.Rows[i]["YCord"])));
}
}
和结果: