如果您知道中心坐标,则在图片上创建相等的框

时间:2018-05-31 17:36:26

标签: c# image winforms graphics picturebox

我想做什么: 我有一个PictureBox,其中加载了图像。用户应该点击图片上的某个位置。点击后,我保存他点击的坐标。

然后我想创建一个新的框,如图所示(注意:如果用户点击边缘,它不应该与图像重叠: enter image description here

之后,我想保存所有坐标[开始/结束],所以当用户再次点击下一个表格时,我可以验证点击是否在之前创建的框内。

到目前为止我得到了什么:

private void pictureBox1_Click(object sender, EventArgs e)
{
    var centerX = ((MouseEventArgs) e).X;
    var centerY = ((MouseEventArgs) e).Y;

    // create box with center in these coordinates
    // save all the coordinates of the box, so I can check if further clicks are within the created box
}

我的问题是点击后创建该框,知道它的中心位置。有点混淆了应该如何创建它。

1 个答案:

答案 0 :(得分:1)

  

点击后创建框,知道它的中心位置。   有点混淆它应该如何被创造。

您可以简单地创建一个具有中心和宽度的正方形:

Rectangle CreateSquare(Point center, int width)
{
    return new Rectangle(center.X - width / 2, center.Y - width / 2,
        width, width);
}

要使用它,就足以处理MouseDown的{​​{1}}事件并使用PictureBox

e.Location