Поворот изображения вокруг своей оси - 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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы