Поворот изображения вокруг своей оси - C#
Формулировка задачи:
Пытаюсь вращать изображение (круговое). Но оно вместо того что бы крутится в центре, крутится от своих координат 0, 0. Подскажите, как можно исправить?
g = this.CreateGraphics();
image = new Bitmap("ref.png");
g.TranslateTransform(dx, dy); // перемещаемся на нужную точку
g.RotateTransform(trackBar1.Value); // поворачиваем элемент
g.DrawImage(image, dx, dy);
g.TranslateTransform(-dx, -dy); // возвращаемся назадРешение задачи: «Поворот изображения вокруг своей оси»
textual
Листинг программы
using System;
using System.Drawing;
using System.Net;
using System.Windows.Forms;
namespace WindowsFormsApplication339
{
public partial class Form1 : Form
{
private Image img;
public Form1()
{
InitializeComponent();
SetStyle(ControlStyles.ResizeRedraw, true);
img = Image.FromStream(new WebClient(){Proxy = null}.OpenRead(@"http://i62.beon.ru/89/53/2175389/50/74569550/x_4157f621.jpeg"));
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var center = new Point(ClientSize.Width / 2, ClientSize.Height / 2);
e.Graphics.TranslateTransform(center.X, center.Y);
e.Graphics.RotateTransform(45);
e.Graphics.TranslateTransform(-center.X, -center.Y);
e.Graphics.DrawImage(img, Point.Empty);
}
}
}