| 
  | 
// This is the POV code for the bent cone posted on p.b.i for Jason Scott
//  Horn using Striscia macros developed by Daniele Varrazzo <pir### [at] officine it>
//  Striscia is still available at http://members.nbci.com/dvarrazzo/epov.htm
//  David Wilkinson 21 Feb 2001
#version 3.1
#include "Striscia.inc"
#include "Spline1.inc"
#include "SplLib.inc"
#include "StrVarFs.inc"
global_settings
{
  assumed_gamma 1.0
}
camera
{
  location  <0, 1, -4>
  right     4/3*x
  look_at   <0,1.6,0>
}
light_source
{
  <-30, 30, -30>
  color rgb 1
}
// calculate a circular arc path
#declare Radius1=4
// 70 degree arc
#declare Path = splCubicSpline(array[8] {
        <0, Radius1, 0> Radius1*<sin(radians(10)),cos(radians(10)), 0>,
Radius1*<sin(radians(20)),cos(radians(20)), 0>,
         Radius1*<sin(radians(30)),cos(radians(30)),
0>,Radius1*<sin(radians(40)),cos(radians(40)), 0>, 
        Radius1*<sin(radians(50)),cos(radians(50)),
0>,Radius1*<sin(radians(60)),cos(radians(60)), 0>,
        Radius1*<sin(radians(70)),cos(radians(70)), 0>})
  
SetPathSpline(Path)
#declare CrossSection = splCircle(4)  // circular cross section
SetShapeSpline(CrossSection)
#declare Scale1=1.5  // this decides the taper of the horn
#declare ConeSlope = slpSlope(array[2] 
   {<0, Scale1*0.01, 0>,  <gPathLength, Scale1*0.2, 0>
})
AddShapeTransform(UNIF_SCALE, ConeSlope)  // uniform taper
#declare Horn =
union {
object { Striscia(UNION)  }
 // small sphere at tip of horn
 sphere {  Radius1*<sin(radians(10)),cos(radians(10)),0> Scale1*0.01 } 
 pigment { checker scale 0.2}
 rotate -z*30 
 translate -Radius1*x
}
object { Horn }
----------------------
dav### [at] hamiltonite com
http://hamiltonite.com/
 
 Post a reply to this message 
 | 
  |