Анимационный цикл, написанный с двумя эллипсами, может ли быть достигнуто решение только с одним эллипсом? - PullRequest
0 голосов
/ 12 сентября 2018

Видимая часть показа решения содержит эллипс, который пересекает границу формы с правой стороны и сразу же появляется с левой стороны.Я написал код с двумя эллипсами.Мне нужна подсказка, если решение может быть записано только одним эллипсом.Можно скопировать и вставить код без добавления дополнительного элемента управления.

Public Class Form1
Dim WithEvents t As New Timer() With {.Interval = 50}
Dim UFO As Integer
Dim reachTheotherSide As Integer
Dim counter As Integer

Private Sub t_Tick(sender As Object, e As EventArgs) Handles t.Tick
    reachTheotherSide += 1
    counter += 1

    If reachTheotherSide >= 198 Then
        UFO += 1
    End If

    If reachTheotherSide >= 250 And UFO = 45 Then
        reachTheotherSide = 45
    End If

    If UFO = 45 Then
        UFO = -87
    End If

    If counter = 285 Then
        Threading.Thread.Sleep(1000)
        counter = 0
    End If

    Me.Invalidate()
End Sub

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    DoubleBuffered = True
    CenterToScreen()
    t.Start()
    UFO = -87
    reachTheotherSide = 45
End Sub

Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
    e.Graphics.DrawEllipse(New Pen(Color.Black, 0), UFO, 87, 86, 86)
    e.Graphics.DrawEllipse(New Pen(Color.Black, 0), reachTheotherSide, 87, 86, 86)
End Sub
End Class
...