34 lines
1.2 KiB
VB.net
34 lines
1.2 KiB
VB.net
' Barnsley Fern - 11/11/2019
|
|
Public Class BarnsleyFern
|
|
|
|
Private Sub BarnsleyFern_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
|
|
Const Height = 800
|
|
Dim x, y, xn, yn As Double
|
|
Dim f As Double = Height / 10.6
|
|
Dim offset_x As UInteger = Height \ 4 - Height \ 40
|
|
Dim n, r As UInteger
|
|
Dim Bmp As New Drawing.Bitmap(Height \ 2, Height) 'x,y
|
|
'In Form: xPictureBox As PictureBox(800,400)
|
|
xPictureBox.Image = Bmp
|
|
For n = 1 To Height * 50
|
|
r = Int(Rnd() * 100) ' f from 0 to 99
|
|
Select Case r
|
|
Case 0 To 84
|
|
xn = 0.85 * x + 0.04 * y
|
|
yn = -0.04 * x + 0.85 * y + 1.6
|
|
Case 85 To 91
|
|
xn = 0.2 * x - 0.26 * y
|
|
yn = 0.23 * x + 0.22 * y + 1.6
|
|
Case 92 To 98
|
|
xn = -0.15 * x + 0.28 * y
|
|
yn = 0.26 * x + 0.24 * y + 0.44
|
|
Case Else
|
|
xn = 0
|
|
yn = 0.16 * y
|
|
End Select
|
|
x = xn : y = yn
|
|
Bmp.SetPixel(offset_x + x * f, Height - y * f, Color.FromArgb(0, 255, 0)) 'x,y 'r,g,b
|
|
Next n
|
|
End Sub 'Paint
|
|
|
|
End Class 'BarnsleyFern
|