Re: Problem with RegionFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg88049] Re: [mg88031] Problem with RegionFunction
- From: John Fultz <jfultz at wolfram.com>
- Date: Wed, 23 Apr 2008 04:06:42 -0400 (EDT)
- Reply-to: jfultz at wolfram.com
On Tue, 22 Apr 2008 06:28:53 -0400 (EDT), zac wrote:
> Dear Group,
>
> any idea what is the problem with the output of this Manipulate?
>
> Manipulate[
> Plot3D[Sin[x]*Cos[y],{x,1,10},{y,2,10},RegionFunction->Function[{x,y},
> 45<=(y^x)]]
> ,{dummy,{True,False}}]
>
> Interestingly none of the following codes produces errors:
>
> Plot3D[Sin[x]*Cos[y], {x, 1, 10}, {y, 1, 10},
> RegionFunction -> Function[{x, y}, 45 <= (y^x)]]
>
> Manipulate[
> Plot3D[Sin[x]*Cos[y], {x, 1, 10}, {y, 1, 10},
> RegionFunction -> If[region, All, Function[{x, y}, 45 <= (y^x)]]]
> , {region, {True, False}}]
>
> Any suggestion would be appreciated.
> Thanks in advance,
> Istvan Zachar
However, this code does produce the error...
Plot3D[Sin[x]*Cos[y], {x, 1, 10}, {y, 2, 10},
RegionFunction -> Function[{x, y}, 45 <= (y^x)],
PerformanceGoal -> "Speed"]
and this version of the Manipulate is error-free...
Manipulate[
Plot3D[Sin[x]*Cos[y], {x, 1, 10}, {y, 2, 10},
RegionFunction -> Function[{x, y}, 45 <= (y^x)],
PerformanceGoal -> "Quality"], {dummy, {True, False}}]
Although the final image in Manipulate is produced with
PerformanceGoal->"Quality", intermediate images are produced with
PerformanceGoal->"Speed". It looks like the error-handling between the two is
getting confused here.
But, in your case, the problem is easy to work around, although the work-around
will produce a slower Manipulate if your Manipulate requires forcibly
regenerating this Plot3D.
Sincerely,
John Fultz
jfultz at wolfram.com
User Interface Group
Wolfram Research, Inc.