#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:
Почему бы вам просто не отслеживать, какие объекты рисовать без поворота / перевода, а затем нарисовать остальные поверх этого?
…или…
Примените поворот / перемещение, нарисуйте эти объекты, затем выполните обратное вращение / перемещение.
…или…
Используйте отдельный слой для повернутых / переведенных объектов и рисуйте их поверх других объектов.