【发布时间】:2019-02-22 13:21:34
【问题描述】:
我有下面的代码,它允许我在两个给定点之间画一条线。我需要做的是双向延伸这些线,以便线以相同的角度延伸到线的两侧
private void Form1_Load(object sender, EventArgs e)
{
this.Controls.Add(new Panel{Left = 10, Top = 10,Width = 50,Height = 50, BackColor = Color.Blue});
this.Controls.Add(new Panel {Left = 100, Top = 100,Width = 50,Height = 50, BackColor = Color.Blue});
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g;
g = e.Graphics;
Pen myPen = new Pen(Color.Red);
myPen.Width = 1;
g.DrawLine(myPen, 12, 12, 45, 65);
g.DrawLine(myPen, 100, 100, 45, 65);
}
【问题讨论】:
-
不相关,但我想知道为什么
Graphics g; g = e.Graphics;,您正在使用C#,您不必先声明然后分配,正常是在一个语句中同时完成 -
@CamiloTerevinto 没关系,我想念你的意思:D
-
这个问题有点不清楚。你试过什么,什么不起作用?您需要将线延伸到两点之外多远?
Panels 是你的点吗(对于 50x50 像素的点来说它们相当大)?您是否正在寻求确定点的数学帮助,而不是仅仅尝试不同的坐标,直到得到您想要的?您可以edit your question提供更多详细信息。 -
我不确定你所说的“到最后”是什么意思,但是你可以使用斜率截距公式来找到一条线上的任何点,所以@987654322 @ 找到结束,slope-intercept formula 解决坐标。
-
给我们画一张带有标签的图片,向我们展示您想要什么。例如,您可以在 Paint 或 PowerPoint 中使用它。