У меня есть фоновая картинка, в основном холст, на который я рисую кучу прямоугольников , и мне нужно повернуть pixmap и прямоугольники. Однако вращение фоновой pixmap и прямоугольников должно быть выполнено отдельно, то есть поворот фоновой pixmap обрабатывается через внешнюю библиотечную процедуру , и мне нужно повернуть и перерисовать прямоугольники сверху вручную.Вращающиеся прямоугольники, чтобы они сохраняли свое относительное положение на холсте.
До сих пор я мог поворачивать прямоугольники, применяя transformation matrix I got from Wikipedia к каждой вершине. Я не знаю, как их перевести, чтобы каждый прямоугольник сохранял свое положение относительно холста.
Вот быстрый рисунок для иллюстрации того, что я хочу добиться:
Мне нужно сделать это с C и Xlib, но я не обязательно ищет код, но был бы признателен некоторые общие советы/алгоритмы.
Матрица преобразования вы применили вращает точки относительно начала координат. Вы должны убедиться, что контрольная точка, по которой вы вращаетесь, одинакова для прямоугольника и pixmap. Кроме того, пожалуйста, включите все ссылки и изображения в самом вопросе. Нам не нужно переходить на внешние ссылки. –
Невозможно, чтобы я мог включать изображения с менее чем 10 точками реплики. Если вы посмотрите на фоновой pixmap (т. Е. Черный прямоугольник на иллюстрации), какова будет опорная точка вращения? – user6419081
Очень сложно догадаться, пока мы не увидим ваш код. –