The new NodeBox forum is live! Everything from support.nodebox.net moved here: sign in with the same email to pick up your old posts. Something not working? Write to forum-support@nodebox.net.
Convert few codes from NodeBox 1 examples in Mac to NodeBox OpenGL for my students as most of them use Windows version.
What I notice is that whenever a random command is issued inside the draw method.
say for example: strokewidth(random(1,5))
or any command using random
In Window when the canvas.run(draw) is issued , what being displayed is a blinking screen where the random values keep on changing. This will make random function ineffective inside the draw method. Is it a bug of the run loop?
SA
SAStuart Axon
Hopefully this late reply will be useful to someone else...
If you want to keep the same random value every time you draw a frame, calculate it outside the draw loop, then reuse the same value.
FB
FBFrederik De BleserNodeBox team
Randomness in software is tricky. Since the code is executed every frame, and random returns a different value every time it is called, the result will be different for every frame.
There are two solutions to this:
Pre-calculate the values: that is, they should be random at initialization time (every time the program runs), not for every frame.
Use a random seed. Use from random import seed at the top, then in your draw loop, set the seed to a fixed value, like seed(42). Random numbers are not really random, but depend on this seed to generate a series of random values. The same seed always calculates the same series. So by "locking" the seed to a fixed value in the draw call, we can make sure that the values will not change per-frame.
Know something that helps?
Sign in with your email address to reply. No password needed.