POV-Ray : Newsgroups : povray.binaries.scene-files : AT Devil Plate Server Time
8 Apr 2025 17:20:49 EDT (-0400)
  AT Devil Plate (Message 1 to 3 of 3)  
From: Droj
Subject: AT Devil Plate
Date: 4 Apr 2025 10:50:00
Message: <web.67eff108fc8a612c763e4a273b2af915@news.povray.org>
Hi,

Again I found an other interesting isosurface in Abderrahman Taha's MathMod
which he called Devil Plate (see his functions at the beginning of the attached
pov-file).

But this time I am stuck.

I am posting the pov-file which renders OK although it takes a 'couple
of minutes'. The result is close to the original but

what I could not find out is how to apply thickness

ThickIsoExterior=(Iso(x,y,z,1)*Iso(x,y,z,-1))

and how to apply this condition

F(x,y,z,t) = if(y<(44/10)&y>-(24/10),ThickIsoExterior((10*x/15),y,z,t),1)

Can someone help?

Regards
Droj


Post a reply to this message


Attachments:
Download 'iso_devil_plate.pov.txt' (3 KB)

From: Bald Eagle
Subject: Re: AT Devil Plate
Date: 4 Apr 2025 11:45:00
Message: <web.67effe60d1f5ea8e25b4de9225979125@news.povray.org>
"Droj" <803### [at] drojde> wrote:

> what I could not find out is how to apply thickness
>
> ThickIsoExterior=(Iso(x,y,z,1)*Iso(x,y,z,-1))


That's just a function - like any other.
You might have discontinuities, which would drive the gradient through the roof.

> and how to apply this condition
>
> F(x,y,z,t) = if(y<(44/10)&y>-(24/10),ThickIsoExterior((10*x/15),y,z,t),1)

There are likely several ways to go about this.
Enclosing the inequalities in parentheses evaluates them as a Boolean.
If you multiply them, if either one is false, then the product is zero.
If they are both true, then you get 1 * 1 = 1;
so you could try:

F(x,y,z,t) =
select ( (y<(44/10)) * (y>-(24/10)),
0, 1, ThickIsoExterior((10*x/15),y,z,t)
)

A zero gets added in to use the "4-parameter version" of select, and then since
false = 0, the 1 is the next parameter, and true = 1, so ThickIsoExterior is the
last parameter.

Hope that makes sense.

- BW

select(A, B, C [,D])
It can be used with three or four parameters Select compares the first argument
with zero, depending on the outcome it will return B, C or D. A,B,C,D can be
floats or funtions.

When used with three parameters, if A < 0 it will return B, else C (A >= 0).

When used with four parameters, if A < 0 it will return B. If A = 0 it will
return C. Else it will return D (A > 0).


Post a reply to this message

From: Droj
Subject: Re: AT Devil Plate
Date: 5 Apr 2025 08:25:00
Message: <web.67f1205ad1f5ea8e4e78ec763b2af915@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:

> >
> > F(x,y,z,t) = if(y<(44/10)&y>-(24/10),ThickIsoExterior((10*x/15),y,z,t),1)
>
> There are likely several ways to go about this.
> Enclosing the inequalities in parentheses evaluates them as a Boolean.
> If you multiply them, if either one is false, then the product is zero.
> If they are both true, then you get 1 * 1 = 1;
> so you could try:
>
> F(x,y,z,t) =
> select ( (y<(44/10)) * (y>-(24/10)),
> 0, 1, ThickIsoExterior((10*x/15),y,z,t)
> )
>
> A zero gets added in to use the "4-parameter version" of select, and then since
> false = 0, the 1 is the next parameter, and true = 1, so ThickIsoExterior is the
> last parameter.
>
> Hope that makes sense.
>
> - BW
>
> select(A, B, C [,D])
> It can be used with three or four parameters Select compares the first argument
> with zero, depending on the outcome it will return B, C or D. A,B,C,D can be
> floats or funtions.
>
> When used with three parameters, if A < 0 it will return B, else C (A >= 0).
>
> When used with four parameters, if A < 0 it will return B. If A = 0 it will
> return C. Else it will return D (A > 0).

Thanks, B.E.
Now it's clearer what select() is good for.
I have to chew on that for a while.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.