📄 递归画三角形.frm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -