|
![](/i/fill.gif) |
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) |