摘要:Dim line As String = New String(" "c, 4 - i) & New String("*"c, 9)
平行四边形:每行偏移量递减
菱形:分上下半区分别处理星号数量
等腰三角形:星号数量呈奇数增长
坐标计算采用20像素行距确保可读性所有图形使用相同绘图上下文保证一致性Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
Dim g As Graphics = e.Graphics
Dim font As New Font("Courier New", 12)
Dim brush As New SolidBrush(Color.Black)
' 平行四边形(5行9列)
For i As Integer = 0 To 4
Dim line As String = New String(" "c, 4 - i) & New String("*"c, 9)
g.DrawString(line, font, brush, 20, 20 + i * 20)
Next
' 菱形(5行)
Dim space As Integer = 4
Dim star As Integer = 1
For i As Integer = 0 To 4
Dim line As String = New String(" "c, space) & New String("*"c, star)
g.DrawString(line, font, brush, 150, 20 + i * 20)
If i
space -= 1
star += 2
Else
space += 1
star -= 2
End If
Next
' 等腰三角形(5行)
Dim line As String = New String(" "c, 4 - i) & New String("*"c, 2 * i + 1)
g.DrawString(line, font, brush, 280, 20 + i * 20)
Next
End Sub
来源:Pia科技