如何使用两个PointF创建RectangleF? [英] How to create a RectangleF using two PointF?

查看:106
本文介绍了如何使用两个PointF创建RectangleF?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了两个点,就像一条线.我想将其转换为矩形. 我该怎么办?

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

例如,这就是我画线的方式.但我希望它成为Rectangle

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();
    }

推荐答案

怎么样:

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.

这篇关于如何使用两个PointF创建RectangleF?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆