求中点做法,23行,不使用“:”,我的极限精简
![[呵呵]](/static/emoticons/u5475u5475.png)
:
Sub RecursionTriangle(ByVal N As Byte, ParamArray Pt() As Variant)
For i = 0 To 5 Step 2
CreateLine (Pt(i Mod 6) + Pt((i + 2) Mod 6)) / 2, (Pt((i + 1) Mod 6) + Pt((i + 3) Mod 6)) / 2, (Pt((i + 4) Mod 6) + Pt((i + 2) Mod 6)) / 2, (Pt((i + 5) Mod 6) + Pt((i + 3) Mod 6)) / 2
If N > 0 Then RecursionTriangle N - 1, Pt((i + 2) Mod 6), Pt((i + 3) Mod 6), Line1(Line1.Count - 1).X1, Line1(Line1.Count - 1).Y1, Line1(Line1.Count - 1).X2, Line1(Line1.Count - 1).Y2
Next
End Sub
Private Sub StartRecursion(N As Byte, Pt As Variant)
For i = 0 To 5 Step 2
CreateLine Pt(i Mod 6), Pt((i + 1) Mod 6), Pt((i + 2) Mod 6), Pt((i + 3) Mod 6)
Next
RecursionTriangle N - 2, Pt(0), Pt(1), Pt(2), Pt(3), Pt(4), Pt(5)
End Sub
Sub CreateLine(ParamArray Pt() As Variant)
Load Line1(Line1.Count)
Line1(Line1.Count - 1).X1 = Pt(0)
Line1(Line1.Count - 1).Y1 = Pt(1)
Line1(Line1.Count - 1).X2 = Pt(2)
Line1(Line1.Count - 1).Y2 = Pt(3)
Line1(Line1.Count - 1).Visible = True
End Sub
Private Sub Form_Load()
StartRecursion 3, Array(1000
#, 8000#
, 7000
#, 8000#
, 4000#, 8000 - 3000 * Sqr(3))
End Sub