|
![](/i/fill.gif) |
It uses a #switch with #range now.
Brendan Ryan
Nieminen Juha wrote:
> Andrea Ryan <ary### [at] global2000 net> wrote:
> : #if (-0.000000000000000244921<=vec.u<=0.000000000000000244921)
>
> This comparison doesn't work as expected. It will be true when the value
> of 'vec.u' is less than the first value.
>
> Why?
> Let's take a simpler example:
>
> #if(-0.5 <= var <= 0.5)
> #debug "Hello\n"
> #end
>
> This will print "Hello" only when 'var' is less than '-0.5'.
> What happens?
> First povray will evaluate the first operator, ie. "-0.5 <= var". If
> 'var' is greater or equal to -0.5, it will return true, which is the same
> as 1, else false, which is the same as 0.
> Let's suppose that 'var' has the value 0. The comparison "-0.5 <= 0" will
> return true, ie 1. Now povray will make the comparison "1 <= 0.5" which
> returns false. The string is not printed.
> Let's suppose that 'var' has the value -1. The comparison "-0.5 <= -1" will
> return false, ie 0. The comparison "0 <= 0.5" will return true. The string
> is printed.
>
> Thus, the string will be printed only when the value of 'var' is less
> than -0.5.
>
> The correct way to do the comparison is:
>
> #if(-0.5 <= var & var <= 0.5)
>
> --
> main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
> ):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |