позвольте мне начать с заявления, что я ужасен в математике.
Я пытаюсь изменить положение и повернуть прямоугольник. Тем не менее, мне нужно повернуть прямоугольник из точки, которая не 0,0, но в зависимости от того, насколько сместились его координаты. Я уверен, что в этом нет особого смысла, поэтому я сделал несколько набросков, чтобы объяснить, что мне нужно.
альтернативный текст http://www.freeimagehosting.net/uploads/5f0c9d5aa6.png
на изображении выше показаны 3 этапа красного прямоугольника, перемещающихся от 0% до 100%. координаты X и Y красного прямоугольника (вверху слева от красного прямоугольника) перемещаются только в процентах от высоты синего прямоугольника.
альтернативный текст http://www.freeimagehosting.net/uploads/a316b5650f.png
красный прямоугольник может вращаться. фокусируясь только на среднем примере («Расстояние -50%») сверху, где красный прямоугольник перемещен на -50 высоты синего прямоугольника, его новый угол на изображении выше теперь -45º. он был повернут с 0, 0 баллов.
альтернативный текст http://www.freeimagehosting.net/uploads/9c97165908.png
Теперь моя проблема в том, что я хочу, чтобы его точка вращения отражала его положение.
красный и синий прямоугольники имеют одинаковый размер, но имеют противоположную ширину и высоту. Поскольку координаты 0,0 красного прямоугольника теперь составляют -50% от высоты синего прямоугольника, и поскольку они имеют противоположную ширину и высоту, я хочу, чтобы точка вращения составляла 50% ширины красного прямоугольника (или 50% от синего прямоугольника). высота, что одно и то же).
вместо того, чтобы специально указывать красному прямоугольнику вращаться на 50% его ширины, чтобы сделать то, что я хочу, мне нужно эмулировать это, используя формулу, которая будет позиционировать координаты X и Y красного прямоугольника так, чтобы его точка вращения отражает ее положение.