递归画三角形.frm

来自「蒋加伏主编VB程序设计第四版PPT及全部课本源码 北京邮电大学出版社 」· FRM 代码 · 共 51 行

FRM
51
字号
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "例[8-12]递归画三角形"
   ClientHeight    =   2925
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4335
   LinkTopic       =   "Form1"
   ScaleHeight     =   2925
   ScaleWidth      =   4335
   StartUpPosition =   3  '窗口缺省
   Begin VB.PictureBox Picture1 
      Height          =   2655
      Left            =   120
      ScaleHeight     =   2595
      ScaleWidth      =   4035
      TabIndex        =   0
      Top             =   120
      Width           =   4095
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit                       '强制变量显式声明
Private Sub Picture1_Click()
  Dim n As Integer
  n = InputBox("input n")                  '递归层次
  Picture1.Print Tab(2); "递归N=" & n & "时的图形"
  Picture1.Scale (0, 600)-(600, 0)         '自定义坐标系
  Call triangle(30, 320, 570, 30, 570, n)   '调用画三角形过程
End Sub
Private Sub triangle(x1!, x2!, x3!, y1!, y2!, k%)
  Dim u1!, u2!, v1!, v2!
  If k > 1 Then                  '当没有到底层,递归调用
    u1 = (x1 + x2) / 2             '三条边的中点
    u2 = (x2 + x3) / 2
    v1 = (y1 + y2) / 2
    Call triangle(u1, x2, u2, v1, y2, k - 1)  '递归调用
    Call triangle(x1, u1, x2, y1, v1, k - 1)
    Call triangle(x2, u2, x3, y1, v1, k - 1)
  Else
    Picture1.Line (x1, y1)-(x3, y1)        '到达递归底层画三角形
    Picture1.Line (x1, y1)-(x2, y2)
    Picture1.Line (x2, y2)-(x3, y1)
  End If
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?