Я пытаюсь сделать простую программу, в которой я могу добавить несколько png на холст. Один из вариантов — повернуть выбранный png. У меня проблема с вращением. Когда я использую Transformation, он вращает все на холсте. Я нашел только примеры поворота на 90' или флипа, но я хочу повернуть на любой угол.
Я также пытался преобразовать swt-изображение в буферизованное изображение, повернуть, затем преобразовать буферизованное изображение в swt-изображение и нарисовать его, но это очень медленно и имеет некоторые проблемы с прозрачностью.
Буду благодарен за помощь - хочу повернуть через центр изображения. Для рисования я использую GC и Canvas - new GC(canvas);
EDIT: у меня все еще есть проблема с вращением по центру изображения:
gc.setAdvanced(true);
if (!gc.getAdvanced()) {
gc.drawText("Advanced graphics not supported", 30, 30, true);
return;
}
Transform oldTransform = new Transform(gc.getDevice());
gc.getTransform(oldTransform);
Transform transform = new Transform(GCController.getCanvas().getDisplay());
transform.translate(width/2, height/2);
transform.rotate(rotation);
gc.setTransform(transform);
gc.drawImage(image, x, y);
gc.setTransform(oldTransform);
transform.dispose();