我有几个项目,我想计算一个适合它们的最小矩形,但项目会旋转到某种程度,或者是倾斜或两者兼而有之。那么我如何获得可以包含所有的最小矩形?
答案 0 :(得分:1)
你可以得到每个项目的边界框,计算它的四个极值点,然后在它们上应用变换(倾斜,旋转......)
然后,您可以通过计算所有这些点的最小值和最大值x和y来轻松计算边界框。
答案 1 :(得分:1)
以下是Dynamic Canvas实施的链接。此控件自动调整其大小以适合其内容,因此可以在此代码中找到问题的答案。查看MeasureOverride函数。
答案 2 :(得分:0)
在您想要的项目列表上做一个foreach。在循环的每次迭代中,获取项目的Canvas位置(左上角)并添加ActualWidth / ActualHeight以获得右下角。取左上角和右下角,调用Transform.Transform获取ACTUAL左上角和右下角。
跟踪最小和最大左上角和右下角以获取边界框。