Fractal Trees in

GeoGebra

Fractal Trees in

GeoGebra

Fractal tree: Basic example

Fractal tree: Basic example

Fractal tree: Basic example

  1. Create segment and two branches
  2. Create a new tool
  3. Iterate

GeoGebra 5 Classic

Desktop

GeoGebra

GeoGebra 5 Classic

Desktop

GeoGebra Classic

Online

GeoGebra

😃

👈

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 1

Create segment and two branches

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 2

Create new tool

Step 3

Iterate

Step 3

IterationList()

Iterate

Flatten()
Zip()

Step 3

IterationList()

Iterate

Flatten()
Zip()

Main command

Auxiliar commands

\(\left.\right\}\)

Step 3

Iterate

IterationList(Flatten(Zip(Grow(s), s, level)), level, {{f}}, 8)

Step 3

Iterate

Fractal tree: Commands

IterationList(Flatten(Zip(Grow(s), s, level)), level, {{f}}, 8)

Fractal tree: Commands

IterationList(
    Flatten(
        Zip(Grow(s), s, level)
    ),
    level, {{f}}, 8
)

Fractal tree: Commands

IterationList(
    Flatten(
        Zip(Grow(s), s, level)
    ),
    level, {{f}}, 8
)

{{a, b, c}, {x, y, z}}

Creates a list of branches

Fractal tree: Commands

IterationList(
    Flatten(
        Zip(Grow(s), s, level)
    ),
    level, {{f}}, 8
)

{{a, b, c}, {x, y, z}}

Flattens list to one list

{a, b, c, x, y, z}

Fractal tree: Commands

\(\left.\right\}\)

Expression

that defines the tree

Counts

Start

value

Variable

IterationList(
    Flatten(
        Zip(Grow(s), s, level)
    ),
    level, {{f}}, 8
)

Fractal tree: Basic example

Fractal tree: Basic example

we can change color and thickness

Fractal tree: Using randomness

Fractal tree: Using randomness

Branches:

Rotation + Dilatation

Fractal tree: Using randomness

Dilate(Rotate(A, α, B), s1, B)
Dilate(Rotate(A, β, B), s2, B)

Branch 1:

Branch 2:

Note: A and B are the endpoints of the segment.

Fractal tree: Using randomness

Dilate(Rotate(A, α, B), s1, B)
Dilate(Rotate(A, β, B), s2, B)

Fractal tree: Using randomness

Dilate(Rotate(A, 5Ï€/4, B), 0.75, B)
Dilate(Rotate(A, 3Ï€/4, B), 0.75, B)

Branch 1:

Branch 2:

Fractal tree: Using randomness

Dilate(Rotate(A, 5Ï€/4, B), 0.75, B)
Dilate(Rotate(A, 3Ï€/4, B), 0.75, B)

Branch 1:

Branch 2:

 π + random() * π/4
 0.5 + 0.5 * random()
 π - random() * π/4
 0.5 + 0.5 * random()

Fractal tree: Using randomness

Fractal tree: Using randomness

ListOutPut

{Segment(B, C), Segment(B, D)}

Fractal tree: Using randomness

ListOutPut

{Segment(B, C), Segment(B, D), <S>}
If(random() > 0.7, Segment(B, E), Segment(B, B))
 π + π/8 + random() * π/4
   0.5 + 0.5 * random()

Rotate:

Dilate:

with respect of point B

Fractal tree: Using randomness

ListOutPut

{Segment(B, C), Segment(B, D), <S>}

Segment of

length 0

If(random() > 0.7, Segment(B, E), Segment(B, B))

Fractal tree: Using randomness

Fractal tree: Using randomness

  1. Create segment and branches
  2. Create a new tool
  3. Iterate

Fractal trees

By Juan Carlos Ponce Campuzano