21
Сентябрь
2011
Кривая Коха — как правильно построить рекурсию
Кривая Коха — как правильно построить рекурсию
Private Sub Command1_Click() Cls Kohh Text1.Text, 0, Me.ScaleHeight - 10 * Screen.TwipsPerPixelY, _ Me.ScaleWidth, Me.ScaleHeight - 10 * Screen.TwipsPerPixelY End Sub Private Sub Kohh(NumIt As Integer, x1&, y1&, x2&, y2&) If NumIt = 1 Or (x1 \ Screen.TwipsPerPixelX = x2 \ Screen.TwipsPerPixelX And y1 \ Screen.TwipsPerPixelY = y2 \ Screen.TwipsPerPixelY) Then Line (x1, y1)-(x2, y2) Else Kohh NumIt - 1, x1, y1, _ x1 + (x2 - x1) / 3, y1 + (y2 - y1) / 3 Kohh NumIt - 1, x1 + (x2 - x1) / 3, y1 + (y2 - y1) / 3, _ (x1 + x2) / 2 + (y2 - y1) * Sqr(3) / 6, (y1 + y2) / 2 - (x2 - x1) * Sqr(3) / 6 Kohh NumIt - 1, (x1 + x2) / 2 + (y2 - y1) * Sqr(3) / 6, (y1 + y2) / 2 - (x2 - x1) * Sqr(3) / 6, _ x2 - (x2 - x1) / 3, y2 - (y2 - y1) / 3 Kohh NumIt - 1, x2 - (x2 - x1) / 3, y2 - (y2 - y1) / 3, _ x2, y2 End If Stps = (Stps + 1) Mod 30000 If Stps = 0 Then DoEvents End Sub