none
Как повернуть изображение на 90 градусов? RRS feed

  • Вопрос

  • Это код поворачивает изображение GDI+ помойму относительно формы:

            private void button1_Click(object sender, EventArgs e)
            {
                Graphics G = this.CreateGraphics();
                SolidBrush S = new SolidBrush(Color.Black);
                G.FillRectangle(S, 50, 50, 50, 15);
    
                Matrix matrix1 = new Matrix();
                matrix1.Rotate(45);
                G.Transform = matrix1;
    
                S.Color = Color.Red;
                G.FillRectangle(S, 50, 50, 50, 15);
            }

    Как повернуть изображение на месте на 90 градусов?

    Желательно используя функции матрицы или же функции Graphics.Transform.

    1 июня 2012 г. 13:24

Ответы

  • Эту имееш виду

    	private void button1_Click(object sender, EventArgs e)
            {
                Rectangle rect = new Rectangle(50, 50, 50, 15);
    
                Graphics G = this.CreateGraphics();
                SolidBrush S = new SolidBrush(Color.Black);
                G.FillRectangle(S, rect);
    
                Matrix matrix1 = new Matrix();
                matrix1.RotateAt(45, new PointF(rect.X + rect.Width / 2, rect.Y + rect.Height / 2));
                G.Transform = matrix1;
    
                S.Color = Color.Red;
                G.FillRectangle(S, rect);
            }

    • Предложено в качестве ответа LXGDARKEditor 3 июня 2012 г. 9:17
    • Помечено в качестве ответа Abolmasov Dmitry 4 июня 2012 г. 9:13

Все ответы

  • Эту имееш виду

    	private void button1_Click(object sender, EventArgs e)
            {
                Rectangle rect = new Rectangle(50, 50, 50, 15);
    
                Graphics G = this.CreateGraphics();
                SolidBrush S = new SolidBrush(Color.Black);
                G.FillRectangle(S, rect);
    
                Matrix matrix1 = new Matrix();
                matrix1.RotateAt(45, new PointF(rect.X + rect.Width / 2, rect.Y + rect.Height / 2));
                G.Transform = matrix1;
    
                S.Color = Color.Red;
                G.FillRectangle(S, rect);
            }

    • Предложено в качестве ответа LXGDARKEditor 3 июня 2012 г. 9:17
    • Помечено в качестве ответа Abolmasov Dmitry 4 июня 2012 г. 9:13
  • Привет, если ответ решает вашу проблему, пожалуйста, не забывайте отмечать его (кнопка 'Пометить как ответ' под сообщением). Спасибо.


    Для связи [mail]