|
|
Greg M. Johnson <gre### [at] my-dejanewscom> wrote:
: 1) a plane at y=1.000 with its normal 'up'
I think that the function is defined so that everything point for which
f(x,y,z) < 0 is inside the surface while every point for which f(x,y,z) > 0
is outside the surface. Every point for which f(x,y,z) = 0 is exactly on
the surface (assuming, of course, that 'threshold' is 0).
So when a normal of a plane is 'up', it's defined that 'up' is outside
the plane and 'down' is inside the plane. Thus, we need to formulate the
function so that for every point "below" the surface f(x,y,z) < 0. And
since we want the surface to be at y=1, it would be:
f(x,y,z) = y-1
If you think about it, what we did was just moving all the items in
the equation "y=1" to the same side of the equation.
Now the surface is defined as "y-1 = 0". Every point below this will
be < 0 (for example if y=0 then 0-1 < 0).
: 2) a plane at y=0.999 with its normal 'down'
Again, we can move all the terms to the same side of the equation, so
we get:
f(x,y,z) = y-.999
However, here 'outside' is still 'up'. So we need to make it the other
way around. Now every point that has the y bigger than .999 has to be inside
instead of outside like in the above function.
That's easy: Just change the sign of the function:
f(x,y,z) = -y+.999
or in other words:
f(x,y,z) = .999-y
--
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
|
|
|
|
Warp wrote:
>
> I think that the function is defined so that everything point for which
> f(x,y,z) < 0 is inside the surface while every point for which f(x,y,z) > 0
> is outside the surface.
Yes, and you can easily switch the orientation of an isosurface with "sign -1"
--
Margus Ramst
Personal e-mail: mar### [at] peakeduee
TAG (Team Assistance Group) e-mail: mar### [at] tagpovrayorg
Post a reply to this message
|
|
|
|
"Greg M. Johnson" wrote:
>
> How would one designate (in isosurface lingo):
>
> 1) a plane at y=1.000 with its normal 'up'
> 2) a plane at y=0.999 with its normal 'down'
This isn't technically possible; planes have no thickness, a condition
for which there is no valid function in POV that will render properly
(AFAIK), and they're infinite in two dimensions, which an isosurface's
container can't be.
--
Xplo Eristotle
http://start.at/xplosion/
"And then one day you find ten years have got behind you
No one told you when to run, you missed the starting gun"
-Pink Floyd
Post a reply to this message
|
|
|
|
Xplo Eristotle wrote:
> This isn't technically possible; planes have no thickness, a condition
> for which there is no valid function in POV that will render properly
...
In POV-Ray, planes are infinitely thick, the inside being the opposite
of the normal side.
Post a reply to this message
|
|
|
|
In article <39252E36.172E8698@my-dejanews.com>,
gre### [at] my-dejanewscom wrote:
> How would one designate (in isosurface lingo):
>
> 1) a plane at y=1.000 with its normal 'up'
> 2) a plane at y=0.999 with its normal 'down'
>
> There's some kind of terminology like (y-.00001), but I've been unable
> to figure it out........
function {y} will make a finite(bounded by the contained_by object)
plane at y=0 with a +y normal. "-y" will flip it upside down(as would
"sign -1" in the isosurface block outside the function, "inverse" could
also do the job).
Subtracting a number from y will move the plane +y, adding one will move
it -y, but you have to be careful of the signs when using -y. I suggest
you use "-(y-Dist)" or something similar...
Also, the full equation for a plane would be something like:
function {x*a + y*b + z*c - Dist}
where a, b, and c are the coordinates for the normal, and Dist is the
distance from the origin.
--
Christopher James Huff - Personal e-mail: chr### [at] yahoocom
TAG(Technical Assistance Group) e-mail: chr### [at] tagpovrayorg
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/
Post a reply to this message
|
|