POV-Ray : Newsgroups : povray.binaries.images : Isosurface puzzle : Re: Isosurface puzzle Server Time
1 Aug 2024 20:14:15 EDT (-0400)
  Re: Isosurface puzzle  
From: Tim Attwood
Date: 28 Feb 2008 20:03:53
Message: <47c759f9$1@news.povray.org>
>I need a bit of advice.

Maybe you should try out Christoph's IsoCSG library...
http://www.imagico.de/pov/ic/index.html

#include "iso_csg.inc"

#declare dAngle = 15;

#declare SZ = 1+(360/dAngle);

#declare a_column = array [SZ];

// main column
#declare a_column[0] = IC_Cylinder(<0,0,0>,<0,1,0>,1);

#declare c = 0;
#while (c < 360/dAngle)

// flute
#declare a_column[c+1] =
   IC_Rotate(
      IC_Translate(
         IC_Scale(
            IC_Merge2 (
               IC_Cylinder(<0,-0.1,0>,<0,0.8,0>,0.1),
               IC_Sphere(<0,0.8,0>,0.1)
            ),
            <1,1,0.25>
         ),
         <0,0,-1>
      ),
      <0,c*dAngle,0>
   );

#declare c = c+1;
#end

// difference the flutes from the column
#declare f_column = IC_Difference_Array(a_column);

// wrinkle pattern
#declare R_Freq = 2;
#declare R_SZ = 0.025;
#declare f_rough = function {
   f_wrinkles(x*R_Freq, y*R_Freq,z*R_Freq)*R_SZ
};

#declare column = isosurface {
   function{f_column(x,y,z) + f_rough(x,y,z)}
   max_gradient 50
   contained_by {box {<-1.1, 0, -1.1>, < 1.1, 1, 1.1>}}
   accuracy 1e-3
};

object {column
   pigment {Red}
   finish {
      specular 0.3
      roughness 0.01
   }
}


Post a reply to this message

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