POV-Ray : Newsgroups : povray.advanced-users : Isosurfaces... of revolutions ? Server Time
1 Nov 2024 01:20:54 EDT (-0400)
  Isosurfaces... of revolutions ? (Message 1 to 5 of 5)  
From:  Light Beam 
Subject: Isosurfaces... of revolutions ?
Date: 22 Oct 2003 15:25:18
Message: <3f96d99e@news.povray.org>
How to use any "2D" curve (like lathes) to revolve it and combining with any
other function ?
I want to make an Isosurface "Vase" wih some reals (3D, no bumps) reliefs on
it...
...
I suppose I'll must use : #declare my_curve = spline {n, <>, <>, <>...} no ?
but how to revolves it along Y axis and apply my others isosurface functions
on it ?
Am I clear enough ?
Thanks


Post a reply to this message

From: ABX
Subject: Re: Isosurfaces... of revolutions ?
Date: 22 Oct 2003 15:31:47
Message: <kbmdpv0fs9jn820cedri29cku2n155h3f5@4ax.com>
On Wed, 22 Oct 2003 21:25:17 +0200, "_Light_Beam_" <s.f### [at] tiscalifr> wrote:
> How to use any "2D" curve (like lathes) to revolve it and combining with any
> other function ?
> I want to make an Isosurface "Vase" wih some reals (3D, no bumps) reliefs on
> it...
> ...
> I suppose I'll must use : #declare my_curve = spline {n, <>, <>, <>...} no ?
> but how to revolves it along Y axis and apply my others isosurface functions
> on it ?
> Am I clear enough ?

You have to design your spline on 2D with respecto time value being one of
coordinates. Then make function around it. Then use this function to get
radius of f_sphere function. Something like:

#local Spline = spline{
  0 , 1
  1 , 2
  2 , 1
  3 , 1.5
  4 , 1.2
};

#local f_Spline = funcion{ spline{ Spline } };

isosurface{
  function{ f_sphere{ x , y , z , f_Spline(y).x }
}

There is macro in isocsg library where you can duplicate sor object with
isosurface.

ABX


Post a reply to this message

From: Christopher James Huff
Subject: Re: Isosurfaces... of revolutions ?
Date: 22 Oct 2003 16:47:32
Message: <cjameshuff-02CA08.16452422102003@netplex.aussie.org>
In article <kbmdpv0fs9jn820cedri29cku2n155h3f5@4ax.com>,
 ABX <abx### [at] abxartpl> wrote:

> isosurface{
>   function{ f_sphere{ x , y , z , f_Spline(y).x }
> }

I think you meant: f_sphere(x, 0, z, f_Spline(y).x)

In other words, using a spline to control the radius of a cylinder. 
Obviously, this will only work with sor-like shapes, with a single 
radius. A lathe-type isosurface will be a bit more difficult.

-- 
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tagpovrayorg
http://tag.povray.org/


Post a reply to this message

From: Mike Williams
Subject: Re: Isosurfaces... of revolutions ?
Date: 22 Oct 2003 20:19:09
Message: <0m1OGAA91xl$EwZc@econym.demon.co.uk>
Wasn't it _Light_Beam_ who wrote:
>How to use any "2D" curve (like lathes) to revolve it and combining with any
>other function ?
>I want to make an Isosurface "Vase" wih some reals (3D, no bumps) reliefs on
>it...
>...
>I suppose I'll must use : #declare my_curve = spline {n, <>, <>, <>...} no ?
>but how to revolves it along Y axis and apply my others isosurface functions
>on it ?
>Am I clear enough ?
>Thanks
>

Here's a few ideas to get you started

Starting with a 2d equation:
<http://www.econym.demon.co.uk/isotut/substitute.htm#sor>

Starting with a 2d spline:
<http://www.econym.demon.co.uk/isotut/splines.htm#lathe>
<http://www.econym.demon.co.uk/isotut/splines.htm#plathe>

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: JC (Exether)
Subject: Re: Isosurfaces... of revolutions ?
Date: 24 Oct 2003 03:19:26
Message: <3f98d27e@news.povray.org>
This is not exactly what you're asking for but there is also a way to 
wrap a planar isosurface around in a cylinder :

my_zy_plane_function (f_diameter(x,y,z)*sqrt(x*x+z*z)-R, y, 
R*acos(x/sqrt(x*x+z*z))))

The my_zy_plane_function should be a function describing some planar 
shape like  function(x,y,z) { (x + 0.5)*(1.3+x) }  for example and 
f_diameter is an optional function to vary the diameter along the cylinder.

When using such a regular function as the one I give in example it 
doesn't have much interest, but you can use much more complex shapes as 
f_mesh1 for example.

#declare F_Rotin=function(x,y,z) { f_mesh1 (x,2*y,z,1,0.2,1,0.1,2)};

#macro Cylindre_Rotin(R,H)
isosurface {
   function { F_Rotin (x, sqrt(y*y+z*z)-R, R*acos(y/sqrt(y*y+z*z))) }
   contained_by { box { <0,-R*1.1,-R*1.1>, <H,R*1.1,R*1.1> } }
   threshold 0.08
   accuracy 0.001
   max_gradient 6
   //  evaluate -1, 0.8, 1.0
   rotate 90*z
}
#end

You can write
function { F_Rotin (x, sqrt(y*y+z*z)-R, R*acos(y/max(epsilon, 
sqrt(y*y+z*z)))) }
to avoid divisions by zero if you're a purist, but in practice it's not 
necessary.

JC

_Light_Beam_ wrote:
> How to use any "2D" curve (like lathes) to revolve it and combining with any
> other function ?
> I want to make an Isosurface "Vase" wih some reals (3D, no bumps) reliefs on
> it...
> ...
> I suppose I'll must use : #declare my_curve = spline {n, <>, <>, <>...} no ?
> but how to revolves it along Y axis and apply my others isosurface functions
> on it ?
> Am I clear enough ?
> Thanks
> 
>


Post a reply to this message

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