Велосипед придумывать незачем. Прикрепил к посту доку, не помню где нашел. В ней описано множество алгоритмов. Практически во всех них предусмотрены повороты прямоугольников только на 90 градусов.
В графике эта задача может возникнуть при создании текстурных атласов. Для такого случая есть существующие решения. Одна из самых навороченных утилит --
http://www.texturepacker.com. Можно нагуглить и парочку опенсорсных проектов.