Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a RectangleF using two PointF?

Tags:

c#

gdi+

I have two points created, like a line. I want to convert it as a rectangle. How should I do it?

For example this is how I draw the line. But I want it to be a Rectangle

    private PointF start, end;
    protected override void OnMouseDown(MouseEventArgs e)
    {
        start.X = e.X;
        start.Y = e.Y;
    }

    protected override void OnMouseUp(MouseEventArgs e)
    {
        end.X = e.X;
        end.Y = e.Y;

        Invalidate();
    }
like image 723
Rye Avatar asked Nov 05 '10 06:11

Rye


1 Answers

How about:

new RectangleF(Math.Min(start.X, end.X),
               Math.Min(start.Y, end.Y),
               Math.Abs(start.X - end.X),
               Math.Abs(start.Y - end.Y));

Basically this makes sure you really do present the upper-left corner as the "start", even if the user has created a line from the bottom-left to top-right corners.

like image 164
Jon Skeet Avatar answered Oct 26 '22 20:10

Jon Skeet