如何在WPF中获取多个项目的边界框?

5
我有几个物品,想计算一个最小的矩形,使它们都可以放进去,但是这些物品被旋转或倾斜了。那么我该如何得到能够容纳所有物品的最小矩形呢?
3个回答

1

您可以获取每个项目的边界框,计算其四个极点,然后对它们应用变换(倾斜、旋转等)

然后,您可以通过计算所有这些点的最小和最大x和y来轻松计算边界框。


1

这里有一个实现动态画布的链接。该控件会自动调整大小以适应其内容,因此您可以在此代码中找到解决问题的答案。请查看MeasureOverride函数。


0

在您想要的项目列表上执行foreach。在每次循环迭代中,获取项目的画布位置(左上角),并添加ActualWidth/ActualHeight以获取右下角点。取上左和下右点并调用Transform.Transform以获取实际的上左和下右点。

跟踪最小和最大的上左和下右,以获取边界框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接