Поворот изображения вокруг своей оси - 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д