Name
RND
Syntax
RND (ausdruck)
ausdruck>0, Typ real
Gibt einen gleichmäßig verteilten Zufallswert zwischen 0 und ausdruck zurück. Der Zufallswert wird für jede Instanz eines Objekts neu berechnet.
a=0.75 ! Aufteilungsbreite der Ergebnisse
b=1.25 ! Spektrum der Zufallswerte
n=25 ! Anzahl der Zufallswerte
FOR i=0 TO n
h=RND(b)
LINE2 i*a/n, 0, i*a/n, h
NEXT i
RECT2 0,0,a,b
Erzeugt in einem Rechteck (Breite: a=0.75 ) n=25 zufällige Höhen zwischen 0 und b=1.25.
b=1.25 ! Spektrum der Zufallswerte
n=25 ! Anzahl der Zufallswerte
FOR i=0 TO n
h=RND(b)
LINE2 i*a/n, 0, i*a/n, h
NEXT i
RECT2 0,0,a,b
Erzeugt in einem Rechteck (Breite: a=0.75 ) n=25 zufällige Höhen zwischen 0 und b=1.25.
Die Werteliste wird einmal für ein Objekt berechnet, und bleibt anschließend gleich. Das lässt sich bei Schleifen mit änderbarem Durchlauf gut beobachten: Auch bei einer Änderung der Schleifenanzahl bleiben die einzelnen Ergebnisse die selben. Das ist beabsichtigt, damit z.B. bei Animationen (wo das 3D-Modell bei jedem Bild neu berechnet wird) es nicht zu ungewolltem Flackern kommt.
Um tatsächlich eine randomisierte Zahl zu bekommen, die sich durchgängig ändert, kann man z.B. folgendes machen: int(rnd(_seed % _rangemax)) + 1, wobei der Seed durch eine Globale Variable initialisiert wird. Dafür bieten sich z.B. SYMB_POS_X und GLOB_FRAME_NR an.
Um tatsächlich eine randomisierte Zahl zu bekommen, die sich durchgängig ändert, kann man z.B. folgendes machen: int(rnd(_seed % _rangemax)) + 1, wobei der Seed durch eine Globale Variable initialisiert wird. Dafür bieten sich z.B. SYMB_POS_X und GLOB_FRAME_NR an.
ArchiTalk (EN):
Zufallszahlen im 2D-Skript
Zufallszahlen im 2D-Skript