Lines 36
Keywords
bias (1) random (8)
Permissions
Owner: tomdesmedt
Group Owner: Nodebox Community
Viewable by Everyone
Editable by All Siafoo Users

biased random generator 2

 In Brief The advantage of randomness in generative art is that it produces variation. The drawback is that it introduces chaos by lacking any form of symmetry and coherence. This function offers an easy go-between by allowing you to say: "I want a composition with random ovals, most of which are small, and most of which are located at the bottom left", instead of simply a haphazard collection of ovals all over the place.... more
 Language Nodebox Python
# 's
` 1from random import random as rnd 2from math import floor 3 4_map = [90.0, 9.00, 4.00, 2.33, 1.50, 1.00, 0.66, 0.43, 0.25, 0.11, 0.01] 5def random(v1=1.0, v2=None, bias=0.5): 6    """ Returns a number between v1 and v2, including v1 but not v2. 7    The bias represents the preference towards lower or higher numbers, 8    as a number between 0.0 and 1.0. For example:  9    random(0, 10, bias=0.9) will return 9 much more often than 1.10    """11    if v2 == None:12        v1, v2 = 0, v113    # We use bias*10 as index in the _map curve.14    # If bias is 0.3, rnd()**2.33 will average 0.3.15    bias = max(0, min(bias, 1)) * 1016    i = int(floor(bias))17    n = _map[i]18    if bias < 10:19        n += (_map[i+1]-n) * (bias-i)20    # For rnd() yielding numbers between 0.0 and 1.0:21    # we do rnd()**n22    # n > 1: random numbers will be closer to 0.23    # 0 < n < 1: numbers will be closer to 1.24    x = rnd()**n * (v2-v1) + v125    if isinstance(v1, int) and isinstance(v2, int):26        x = int(x)27    return x2829# NodeBox example:30size(500, 500)31for i in range(100):32    fill(random(bias=0.1))                # more black33    r = random(10, 100, bias=0.2)         # more small ovals34    oval(35        random(WIDTH-r, bias=0.25),       # more to the left36        random(HEIGHT-r, bias=0.75), r, r # more to the bottom37    )3839print random(0,10, bias=0.9)`

The advantage of randomness in generative art is that it produces variation. The drawback is that it introduces chaos by lacking any form of symmetry and coherence. This function offers an easy go-between by allowing you to say: "I want a composition with random ovals, most of which are small, and most of which are located at the bottom left", instead of simply a haphazard collection of ovals all over the place.