вращение определенных объектов с помощью GDI

#vb.net #gdi #rotation

#vb.net #gdi #вращение

Вопрос:

Я хотел бы повернуть только одну из фигур в анимации, но метод rotatetransform применяет этот поворот ко всему виду. У меня есть несколько фигур, которые я хочу оставить неподвижными, и только одна, которую следует вращать. Я пытался использовать контейнеры, но пока это не помогло. Это Visual Basic на XP, с использованием .net gdi , system.drawing. Я использую translatetransform для создания центра вращения.

 Private Sub ellipse()

    myBuffer.Graphics.Clear(Color.White)

    myBuffer.Graphics.TranslateTransform(200, 400)
    If plus_clicked Then
        myBuffer.Graphics.RotateTransform(1)
    Else
        myBuffer.Graphics.RotateTransform(-1)
    End If

    myBuffer.Graphics.DrawEllipse(Pens.Blue, -44, -44, 300, 300)

    myBuffer.Graphics.TranslateTransform(-200, -400)


End Sub
  

Есть идеи?

Ответ №1:

Почему бы вам просто не отслеживать, какие объекты рисовать без поворота / перевода, а затем нарисовать остальные поверх этого?

…или…

Примените поворот / перемещение, нарисуйте эти объекты, затем выполните обратное вращение / перемещение.

…или…

Используйте отдельный слой для повернутых / переведенных объектов и рисуйте их поверх других объектов.