# GeoGebra snow

## Information

This simulation has 20 GGB snowflakes Here is another one with 40 GGB snowflakes: GeoGebra snowing It runs better offline: Download GeoGebra snowing

## Scripting button

# Before we must add the picture centred at the origin # I used this one: https://wiki.geogebra.org/uploads/1/11/GeoGebra.svg # Then create a Setup button with the following script Ln = 1...20 Execute( Zip( "posX"+i+" = Slider(-50, 50, 0.01, 1, 200, false, true, false, false)", i, Ln ) ) Execute( Zip( "SetVisibleInView( posX"+i+", 1, false )", i, Ln) ) Execute( Zip( "SetValue( posX"+i+", RandomBetween(-50, 50) )", i, Ln) ) Execute( Zip( "posY"+i+" = Slider(-100, 100, 0.01, 1, 200, false, true, false, false)", i, Ln ) ) Execute( Zip( "SetVisibleInView( posY"+i+", 1, false )", i, Ln) ) Execute( Zip( "SetValue( posY"+i+", 50 )", i, Ln) ) Execute( Zip( "initialAngle"+i+" = RandomUniform(0, 2 * pi)", i, Ln ) ) Execute( Zip( "size"+i+" = RandomUniform(0.3, 1.2)", i, Ln ) ) Execute( Zip( "radius"+i+" = RandomUniform(0, 10^2)", i, Ln ) ) # Angular velocity Execute( Zip( "w"+i+" = RandomBetween(1, 3)", i, Ln ) ) # time time = 0 Execute( Zip( "angle"+i+" = w"+i+" * time + initialAngle"+i+"", i, Ln ) ) run = Slider(0, 1, 0.01, 1, 200, false, true, false, false) Execute( Zip( "T"+i+" = Translate( Rotate( Dilate( pic1, size"+i+"), 2*pi*sin(angle"+i+") ), Vector( (posX"+i+", posY"+i+") ) )", i, Ln) )

## Scripting Slider

# In the slider named "run" add this script in the tab On Update SetValue(time, time + 0.01) #Execute( Zip("" , i, Ln) ) Execute( Zip(" SetValue(angle"+i+", w"+i+" * time + initialAngle"+i+") " , i, Ln) ) Execute( Zip(" SetValue(posX"+i+", 20 + radius"+i+" * sin(angle"+i+")) " , i, Ln) ) Execute( Zip(" SetValue(posY"+i+", posY"+i+" - (size"+i+")^(1/2)) " , i, Ln) ) Execute( Zip(" If( posY"+i+" < -20, SetValue(posY"+i+", RandomBetween(50, 60))) " , i, Ln) ) Execute( Zip(" If( posY"+i+" < -20, SetValue(posX"+i+", RandomBetween(-50, 50))) " , i, Ln) )