У меня есть четыре точки, которые образуют прямоугольник, и я позволяю пользователю перемещать любую точку и поворачивать прямоугольник на угол (который поворачивает каждую точку вокруг центральной точки). Он остается почти идеальной прямоугольной формы (насколько позволяет точность PointF). Вот пример моего «прямоугольника», нарисованного из четырех точек:
Однако мне нужно иметь возможность получить ширину и высоту между точками. Это легко, когда прямоугольник не повернут, но как только я поверну его, моя математика возвращает ширину и высоту, показанные красным контуром здесь:
Предполагая, что я знаю порядок точек (например, по часовой стрелке от верхнего левого угла), как мне получить ширину и высоту прямоугольника, который они представляют?