#c#
Вопрос:
Я хочу сделать If condition
isAT
это, чтобы получить положение линии на экране.Это означает, что когда мышь на линии и я нажимаю на линию, я могу ее выбрать.Что мне нужно, так это возможность выбрать строку, когда я нажимаю на нее мышью.Заранее спасибо за помощь.
public class MyLine : Shape
{
private float _endY, _endX;
public MyLine() : this(Color.Orange, 0 , 0, 0, 0)
{
}
public MyLine(Color clr, float starX, float starY, float endX, float endY ) : base(clr)
{
X = starX;
Y = starY;
this.endX = endX;
this.endY = endY;
}
public float endX
{
get { return _endX; }
set { _endX = value; }
}
public float endY
{
get { return _endY; }
set { _endY = value; }
}
public override bool IsAT(Point2D pt)
{
if (pt.X > X amp;amp; pt.Y < Y amp;amp; pt.X > endX amp;amp; pt.Y > endY)
return true;
else
return false;
}
}
Комментарии:
1.
pt.X > endX amp;amp; pt.Y > endY
Должно быть<
там?2. если это возможно, пожалуйста, не могли бы вы объяснить мне это?
3.
pt.X > X amp;amp; pt.Y > endY
проверяет, находится ли точка справа и ниже левого верхнего угла.pt.X < endX amp;amp; pt.Y < endY
проверяет, находится ли точка слева и выше нижнего правого угла. Однако это не сработает, если линия имеет awidth = 1
— это действительно то, как вы проверяете, находится ли точка внутри прямоугольника. Кроме того, это работает только с горизонтальными и вертикальными линиями. Если линия находится под углом, вам придется немного посчитать.