Единственный способ увидеть, что этот подход потерпит неудачу, - это если вы трансформируете каждую точку периметра.Если вы делаете это, не надо.Преобразуйте углы и рисуйте линии между каждым углом, используя графические примитивы.
Обновление: Ваш комментарий выдает игру.Вы постоянно вращаетесь и накапливаете ошибки каждый раз, когда оцифровываете, преобразовывая в целое число.Сделайте это, сохранив ваши координаты как значения двойной точности и просто преобразуйте их в целое число по требованию, когда вам нужно рисовать.
На самом деле, если бы вы были на вашем месте, я бы обработал ваши основные данные как положение и угол.Оба хранятся с двойной точностью.Я бы не стал хранить координаты углов вообще.Я хотел бы сохранить положение (центр или один из углов) и угол ориентации (относительно фиксированной глобальной системы координат).Таким образом, вы всегда будете рисовать настоящий прямоугольник.На каждом шаге интеграции при необходимости увеличивайте положение и ориентацию, а затем вычисляйте положение углов на основе основных данных.Сделайте это так, и вы никогда не будете страдать от искажения своей фигуры.