text: //----------------------- user_defined.pov -------------------------
  // This work is licensed under the Creative Commons Attribution 3.0 Unported License.
  // To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/
  // or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View,
  // California, 94041, USA.
  //
  //----------------- Inward facing cylinderical ---------------------
  //
  // +w900 +h450 +a0.1
  
  #version 3.8;
  global_settings { assumed_gamma 1 }
  
  #include "shapes.inc"
  background { color rgb <0.5,0.5,0.5> }
  #declare OurText = "Round and round we go."
  #declare TextAboutY = object {
      Circle_Text_Valigned("crystal.ttf",OurText,
           0.275,0.001,0.02,0.5,0,Align_Left,-5,90)
      pigment { color rgb <0,0,0> }
      rotate x*-90
      translate <0,-0.05,0>
  }
  #declare CameraPerspective = camera {
      perspective
      location <2.3,2.3,-2.301>
      sky <0,1,0>
      angle 35
      right x*(image_width/image_height)
      look_at <0,0,0>
  }
  #declare CylY = cylinder { <0,-1,0>, <0,1,0>, 0.01
      texture { pigment { color rgb <0.859,0.910,0.831> }
                finish { ambient 0 diffuse 0 emission 1 }
      }
  }
  //------- Set up functional camera
  #declare FnXrad = function (x) { (x+0.5)*tau }
  #declare FnX    = function (x) { cos(FnXrad(x)) }
  #declare FnZ    = function (x) { sin(FnXrad(x)) }
  #declare CameraUserDefined = camera {
      user_defined
      location {
        function { FnX(x) }
        function { y }
        function { FnZ(x) }
      }
      direction {
        function { -FnX(x) }
        function { 0 }
        function { -FnZ(x) }
      }
  }
  //---
    camera { CameraUserDefined }
  //camera { CameraPerspective } // Use for perspective scene view
  object { CylY }
  object { TextAboutY }
  
  