【发布时间】:2011-11-20 11:02:08
【问题描述】:
我有四个点形成一个矩形,我允许用户移动任何点并将矩形旋转一个角度(每个点围绕中心点旋转)。它保持近乎完美的矩形形状(只要 PointF 精度允许)。这是我从四个点绘制的“矩形”示例:
但是,我需要能够获得点之间的宽度和高度。当矩形不旋转时这很容易,但是一旦我旋转它,我的数学就会返回红色轮廓显示的宽度和高度:
假设我知道点的顺序(例如从左上角顺时针方向),我如何检索它们所代表的矩形的宽度和高度?
【问题讨论】:
-
这实际上更像是一个几何问题。您可以取前三个点并计算边的长度。如果您想稍微提高精度,可以将长度与其他 2 个边长取平均值。有关公式,请参见此处:en.wikipedia.org/wiki/Pythagorean_theorem
-
你能准确定义旋转矩形的“宽度”是什么意思吗?
-
和不旋转的矩形一样。如,如果你取一个宽度为 100 的四个点的 Rectangle,然后旋转它,宽度不应该改变。无论矩形的旋转如何,您都应该能够计算出 100 的值。