C#获取矩形的最顶部、底部、右侧和左侧点

C#获取矩形的最顶部、底部、右侧和左侧点,c#,wpf,canvas,C#,Wpf,Canvas,我处于这种情况:我有一个画布,其中包含一些矩形,也可以旋转一个角度。我想得到这些矩形的顶部、底部、右侧和左侧端点,以便绘制一个可以包含所有矩形的形状 这是一个数字: 我想创建一个与a、B、C、D点匹配的形状(多边形,而不是矩形) 我如何才能做到这一点?遍历每个矩形并存储其4个点的坐标(X,Y)。浏览此列表并选择符合您标准的配对,即最大x、最大y、最小x、最小y。这4个坐标所属的任何一对都是包含矩形的多边形的边 遍历每个矩形并存储其4个点的坐标(X,Y)。浏览此列表并选择符合您标准的配对,即最大

我处于这种情况:我有一个画布,其中包含一些矩形,也可以旋转一个角度。我想得到这些矩形的顶部、底部、右侧和左侧端点,以便绘制一个可以包含所有矩形的形状

这是一个数字:

我想创建一个与a、B、C、D点匹配的形状(多边形,而不是矩形)


我如何才能做到这一点?

遍历每个矩形并存储其4个点的坐标(X,Y)。浏览此列表并选择符合您标准的配对,即最大x、最大y、最小x、最小y。这4个坐标所属的任何一对都是包含矩形的多边形的边

遍历每个矩形并存储其4个点的坐标(X,Y)。浏览此列表并选择符合您标准的配对,即最大x、最大y、最小x、最小y。这4个坐标所属的任何一对都是包含矩形的多边形的边

因为你知道每个点都由X,Y坐标组成,如果你有所有的点,你可以确定哪个是顶部(即最高的Y值),哪个是最右侧(最高的X值),等等。右-将四个单独的矩形视为一个矩形。这是一个通用的多边形合并问题。首先,您需要确保所有多边形(本例中的4个矩形)均为顺时针方向。如果不是,则反转坐标顺序。然后,通过将多边形与公共边合并来减少多边形数。顺时针测试:边缘总和(x2− x1)(y2+y1)。如果结果为正,则曲线为顺时针方向,如果结果为负,则曲线为逆时针方向。(结果是封闭区域的两倍,具有+/-约定。)问题是我真的不知道如何获得最多的顶部、底部、右侧和左侧点。。。从Canvas.getLeft/right等方法中,我只能得到未旋转矩形的点……矩形是如何旋转的?因为你知道每个点都由X,Y坐标组成,那么如果你有所有的点,你可以确定哪个是顶部(即最高的Y值),哪个是最右侧(最高的X值),右-将四个单独的矩形视为一个矩形。这是一个通用的多边形合并问题。首先,您需要确保所有多边形(本例中的4个矩形)均为顺时针方向。如果不是,则反转坐标顺序。然后,通过将多边形与公共边合并来减少多边形数。顺时针测试:边缘总和(x2− x1)(y2+y1)。如果结果为正,则曲线为顺时针方向,如果结果为负,则曲线为逆时针方向。(结果是封闭区域的两倍,具有+/-约定。)问题是我真的不知道如何获得最多的顶部、底部、右侧和左侧点。。。从Canvas.getLeft/right等方法中,我只能得到未旋转矩形的点……矩形是如何旋转的?