This part of the figure is the first to be completed during the course of iterations.  "ƒ"2  This coordinate transformation is chosen 85% of the time and maps any point inside the leaflet represented by the red triangle to a point inside the opposite, smaller leaflet represented by the blue triangle in the figure.  "ƒ"3  This coordinate transformation is chosen 7% of the time and maps any point inside the leaflet (or "pinna") represented by the blue triangle to a point inside the alternating corresponding triangle across the stem (it flips it).  "ƒ"4  This coordinate transformation is chosen 7% of the time and maps any point inside the leaflet (or "pinna") represented by the blue triangle to a point inside the alternating corresponding triangle across the stem (without flipping it). The first coordinate transformation draws the stem. The second generates successive copies of the stem and bottom fronds to make the complete fern. The third draws the bottom frond on the left. The fourth draws the bottom frond on the right. The recursive nature of the IFS guarantees that the whole is a larger replica of each frond. Note that the complete fern is within the range −2.1820 Other fern varieties with supplied coefficients, retrieved 2010-1-7 You can use the below syntax to draw the fern yourself.  import turtle import random  pen = turtle.Turtle() pen.speed(20) pen.color('green') pen.penup()  x = 0 y = 0 for n in range(100000):   fractal_fern2       SCREEN 12 WINDOW (-5, 0)-(5, 10) RANDOMIZE TIMER COLOR 10 DO LOOP UNTIL INKEY$ = CHR$(27)  Sub Barnsley()  Dim iEnd As Long Dim i As Long Dim x As Double Dim y As Double Dim nextX As Double Dim nextY As Double Dim sShapeArray() As Shape Dim dSize As Double Dim sColor As String  addpackage("Forms.dll")  set("x", 0) set("y", 0) set("width", 600) set("height", 600)  method setup() end  method drawPoint() end  method nextPoint()  end  setup() while(true) end /* results table */ declare @fern table (Fun int, X float, Y float, Seq int identity(1,1) primary key, DateAdded datetime default getdate())  declare @i int = 1 /* interations */ declare @fun int /* random function */  declare @x float = 0 /* initialise X = 0 */ declare @y float = 0 /* initialise Y = 0 */ declare @rand float insert into @fern (Fun, X, Y) values (0,0,0) /* set starting point */  while @i < 5000 /* how many points? */ begin  end  select top 5000 *,geography::Point(Y, X, 4326) from @fern  order by newid()