POV-Ray : Newsgroups : povray.general : transforming splines : Re: transforming splines Server Time
1 Aug 2024 04:11:49 EDT (-0400)
  Re: transforming splines  
From: Jim Charter
Date: 3 Apr 2006 12:20:01
Message: <44314b31$1@news.povray.org>
#include "transforms.inc"
#macro MarkOrigin (Rad)  //mark origin
   cylinder { -100*y 0*y Rad pigment {rgb .5} finish {ambient .8}}
   cylinder { -100*z 0*z Rad pigment {rgb .5} finish {ambient .8}}
   cylinder { -100*x 0*x Rad pigment {rgb .5} finish {ambient .8}}
   cylinder {  0*y 100*y Rad pigment {rgb <0,1,0>} finish {ambient .8}}
   cylinder {  0*z 100*z Rad pigment {rgb <0,0,1>} finish {ambient .8}}
   cylinder {  0*x 100*x Rad pigment {rgb <1,0,0>} finish {ambient .8}} 


#end
#macro ShowSpline ( TheSpline, TheRadius, Grain, TheColor  )
         union {
                 #local i=0;#while(i<Grain)
                         cylinder {
                                 TheSpline((i+1)/Grain)+.00001,
                                 TheSpline(i/Grain),
                                 TheRadius
                                 pigment { rgb TheColor }
                                 finish { ambient 1 }
                         }
                         sphere {
                                 TheSpline(i/Grain),
                                 TheRadius
                                 pigment { rgb TheColor  }
                                 finish { ambient 1 }
                         }
                 #local i=i+1;#end

         }
#end

MarkOrigin ( .005 )

#local P0 = <-1,0,0>;
#local P1 = <0,1,0>;
#local P2 = <1,0,0>;

#local Trans =
transform {
         //
};

#local Spl =
spline { natural_spline
         0/2 vtransform ( P0, Trans )
         1/2 vtransform ( P1, Trans )
         2/2 vtransform ( P2, Trans )
};

ShowSpline ( Spl, .01, 100, <1,0,1> )

#local Trans =
transform {
         rotate z*30
         translate <1,1,0>
};

#local Spl =
spline { natural_spline
         0/2 vtransform ( P0, Trans )
         1/2 vtransform ( P1, Trans )
         2/2 vtransform ( P2, Trans )
};

ShowSpline ( Spl, .01, 100, <1,1,0> )

camera {
   location  vrotate ( <0, 0, -10>, <   5,  0, 0> )
   look_at   vrotate ( <0, 0,   0>, <   0, 0, 0> )
   right     x*image_width/image_height
   angle 32
}


Post a reply to this message

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