you totally missed the point of my post. The only REASONABLE values that R/G/B can be assigned are between 0 and 1 inclusive, or they will be clamped (at the limits). These values can certainly be the result of an expression evaluation... as in your code.
First, to simplify the effort, lets suppose you keep the A vars static (during debugging anyway), i.e.,
Code: Select all
A0=".16" // " + rnd(.32)"
A1=".32" // " + rnd(.64)"
A2=".64" // " + rnd(.128)"
at least your code won't be changing on every invocation... right??
MY problem (and yours) is I have absolutely NO IDEA what you are trying to accomplish with your B vars.
Since 't' goes from 0 -> Infinite (not really, but for practicality),
dividing by a value less than 1 is going to result in in some very large numbers quickly over time... right?
I fear the values you calculate for R/G/B are ALWAYS greater than 1 (and clamped there) after only a few seconds!
Writing code isn't like testing for spagetti doneness!!!
If you can't decribe to me in words, what your code is intended to do, how do you expect anybody else to?
I believe I mentioned this before, but if you expect to do anything significant, you need to develop debugging techniques that you feel comfortable with. GF provides ALMOST no help...
the best solution is NOT TO MAKE MISTAKES (this is a joke, but TRUE)
Since you now KNOW that the expressions assigned to R/G/B should be [0 ... 1], write a little program in the language of your choice:
that iterates 't' and 'i' over some limited discrete values, and print R/G/B values to validate your equations and build confidence you are on the right track...
ain't no easy answers here... roll up your sleeves and get to work.