|
![](/i/fill.gif) |
Wasn't it SharkD who wrote:
>I am having problems with the following pattern:
>
>pigment
>{
> function {sqrt(pow(x,2) + pow(z,2)) / cos(asin(abs(y)))}
> pigment_map
> {
> [0 color rgb 0]
> [1 color rgb <0,1,0,>]
> }
>}
>
>POV-Ray gives the following error:
>
>"Parse Error: Floating-point exception detected in function ''. Your function
>either attempted a division by zero, used a function outside
>its domain or called an internal function with invalid parameters."
>
>Could somebody please explaing to me why this is and what I can do to fix it?
The problem is that asin(foo) is only defined for values of foo between
-1 and +1. If, say y=3 then there is no asin(abs(3)) and you get the
second cause of that error message "your function ... used a function
outside its domain"
If you apply the pigment to an object that lies between y=-1 and y=1,
then it works.
sphere {0,1
scale <5,0.5,5>
pigment{
function {sqrt(pow(x,2) + pow(z,2)) / cos(asin(abs(y)))}
pigment_map {
[0 color rgb 0]
[1 color rgb <0,1,0,>]
}
}
}
If you want to use it on an object that doesn't lie within that region,
then you need to consider what colour you want to have for points
outside that region and code it accordingly.
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
![](/i/fill.gif) |