home *** CD-ROM | disk | FTP | other *** search
/ ANews 3 / AnewsCD3.iso / atari / GRAPHX / POV / 68030.060 / POV31G30 / POVRAY_3.1G / INCLUDE / CHARS.INC < prev    next >
Text File  |  1999-10-30  |  16KB  |  668 lines

  1. #ifdef(Chars_Inc_Temp)
  2. // do nothing
  3. #else
  4. #declare Chars_Inc_Temp=version;
  5.  
  6.  
  7. #ifdef(View_POV_Include_Stack)
  8. #   debug "including chars.inc\n"
  9. #end
  10.  
  11. /*
  12.           Persistence of Vision Raytracer Version 3.1
  13.  
  14.            Characters for POV-Ray Version 3.1
  15.              Original by Ken Maeno 1992-93
  16.           Revised and extended by Chris Young
  17.         Revised for internal web removal by John Andersen
  18.  
  19.  This file includes 26 upper-case letter and other characters defined
  20.  as objects. The size of all characters is 4 * 5 * 1. The center of the
  21.  bottom side of a character face is set to the origin, so please
  22.  translate a character appropriately before rotating it about
  23.  the x or z axes.
  24.  
  25.     Usage:
  26.  
  27.     object{
  28.       char_A
  29.       pigment{ color Red }
  30.     }
  31.  
  32. */
  33.  
  34. #declare char_A =
  35.  intersection {
  36.    box{<-2,0,-0.1>,<2,5,1.1>}
  37.    union {
  38.      box{<-0.5,-6,0>,<0.5,0,1> rotate  z*16.699 }
  39.      box{<-0.5,-6,0>,<0.5,0,1> rotate -z*16.699 }
  40.      box{<-1,  -4,0>,<1, -3,1> }
  41.      translate y*5
  42.    }
  43.    bounded_by{ box { <-2,0,0>,<2,5,1> } }
  44.  }
  45.  
  46. #declare char_P =
  47.   union {
  48.     difference{
  49.       cylinder{0*z,z,1.5}
  50.       cylinder{-z,2*z,0.5}
  51.       plane{x,0}
  52.       bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
  53.       translate<0.5, 3.5, 0>
  54.     }
  55.     box{ <-1.001, 4, 0>, <0.501, 5, 1> }
  56.     box{ <-1.001, 2, 0>, <0.501, 3, 1> }
  57.     box{ <-2, 0, 0>, <-1, 5, 1 > }
  58.   }
  59.  
  60. #declare char_B =
  61.   union {
  62.     object{char_P}
  63.     difference{
  64.       cylinder{0*z,z,1.5}
  65.       cylinder{-z,2*z,0.5}
  66.       plane{x,0}
  67.       bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
  68.       translate<0.5, 1.5, 0>
  69.     }
  70.     box{ <-1.001, 0, 0>, <0.501, 1, 1> }
  71.   }
  72.  
  73. #declare char_C =
  74.   union {
  75.     difference{
  76.       cylinder{0*z,z,2}
  77.       cylinder{-z,2*z,1}
  78.       plane{y,0}
  79.       bounded_by{ box { <-2,0,0>, <2,2,1> } }
  80.       translate 3*y
  81.     }
  82.     difference{
  83.       cylinder{0*z,z,2}
  84.       cylinder{-z,2*z,1}
  85.       plane{-y,0}
  86.       bounded_by{ box { <-2,-2,0>, <2,0,1> } }
  87.       translate 2*y
  88.     }
  89.     box{ <-2,1.999,0>,<-1,3.001,1> }
  90.   }
  91.  
  92. #declare char_D =
  93.   union {
  94.     difference{
  95.       cylinder{0*z,z,2.5}
  96.       cylinder{-z,2*z,1.5}
  97.       plane{x,0}
  98.       bounded_by{ box { <0,-2.5,0>, <2.5,2.5,1> } }
  99.       translate <-0.5,2.5,0>
  100.     }
  101.     box{ <-1.001,4,0>,<-0.499,5,1> }
  102.     box{ <-1.001,0,0>,<-0.499,1,1> }
  103.     box{ <-2,0,0>,<-1,5,1> }
  104.   }
  105.  
  106. #declare char_F =
  107.   union {
  108.     box{ <-2,0,0>,<-1,5,1> }
  109.     box{ <-1.001,2,0>,<1.5,3,1> }
  110.     box{ <-1.001,4,0>,<2,5,1> }
  111.   }
  112.  
  113. #declare char_E =
  114.   union {
  115.     object{char_F}
  116.     box{ <-1.001,0,0>,<2,1,1> }
  117.   }
  118.  
  119. #declare char_G =
  120.   union {
  121.     object{char_C}
  122.     box{ < 0,1.5,0>,<2,2.3,1> }
  123.   }
  124.  
  125. #declare char_H =
  126.   union {
  127.     box{ <-2,0,0>,<-1,5,1> }
  128.     box{ < 1,0,0>,< 2,5,1> }
  129.     box{ <-1.001,2,0>,< 1.001,3,1> }
  130.   }
  131.  
  132. #declare char_I =
  133.   box{ <-0.5,0,0>,<0.5,5,1> }
  134.  
  135. #declare char_J =
  136.   union {
  137.     difference{
  138.       cylinder{0*z,z,2}
  139.       cylinder{-z,2*z,1}
  140.       plane{-y,0}
  141.       bounded_by{ box { <-2,-2,0>, <2,0,1> } }
  142.       translate 2*y
  143.     }
  144.     box{ <1,1.999,0>,<2,5,1> }
  145.   }
  146.  
  147. #declare char_K =
  148.   union {
  149.     intersection {
  150.       union {
  151.     box{ <0,-2,0>,<0.9,5,1> rotate z*45  translate x*0.7272 }
  152.     box{ <0,-5,0>,<0.9,2,1> rotate -z*45 translate <0.7272,5,0> }
  153.       }
  154.       box { <-1,0,-0.1>,<2,5,1.1> }
  155.       bounded_by{ box { <-2,0,0>,<2,5,1> } }
  156.     }
  157.     box { <-2,0,0>,<-1,5,1> }
  158.   }
  159.  
  160. #declare char_L =
  161.    union {
  162.      box{ <-2,1,0>,<-1,5,1> }
  163.      box{ <-2.001,0,0>,<2,1,1>    }
  164.    }
  165.  
  166. #declare char_M =
  167.   union {
  168.     intersection{
  169.       union {
  170.     box{<-0.5,-1,0>,<0.5,5,1> rotate  z*26.5651}
  171.     box{<-0.5,-1,0>,<0.5,5,1> rotate -z*26.5651}
  172.       }
  173.       box{<-1,0,-0.1>,<1,3,1.1>}
  174.       bounded_by{box{<-2,0,0>,<2,4,1>}}
  175.       translate y*2
  176.     }
  177.     box{ <-2,0,0>,<-1,5,1> }
  178.     box{ < 1,0,0>,< 2,5,1> }
  179.   }
  180.  
  181. #declare char_N =
  182.   union {
  183.     intersection{
  184.       box{ <0,0,0>,<1,6,1> rotate z*32.5031 translate x}
  185.       box{ <-1,0,-0.1>,<1,5,1.1> }
  186.       bounded_by{box{ <-1,0,0>,<1,5,1> } }
  187.     }
  188.     box{ <-2,0,0>,<-1,5,1> }
  189.     box{ <1,0,0>,<2,5,1> }
  190.   }
  191.  
  192. #declare char_O =
  193.   union {
  194.     object {char_C}
  195.     box{ <1,1.999,0>,<2,3.001,1> }
  196.   }
  197.  
  198. #declare char_Q =
  199.   union {
  200.     object {char_O}
  201.     box{ <0,0,0>,<1,2.2,1> rotate z*45 translate x*1.29289}
  202.   }
  203.  
  204. #declare char_R =
  205.   union {
  206.     object {char_P}
  207.     intersection {
  208.       box{ <0,-2,0>,<1,5,1> rotate z*36.8699 translate x}
  209.       box{ <-1,0,-0.1>,<2,2,1.1> }
  210.       bounded_by{box{ <-1,0,0>,<2,2,1> }}
  211.     }
  212.   }
  213.  
  214. #declare char_S =
  215.   union {
  216.     intersection{
  217.       cylinder{0*z,z,1.5}
  218.       cylinder{-z,2*z,0.5 inverse}
  219.       box{<0,0,-0.1>,<1.5,1.5,1.1>}
  220.       bounded_by{ box { <0,0,0>, <1.5, 1.5, 1> } }
  221.       translate <0.5,3.5,0>
  222.     }
  223.     difference{
  224.       cylinder{0*z,z,1.5}
  225.       cylinder{-z,2*z,0.5}
  226.       plane{x,0}
  227.       bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
  228.       translate<0.5, 1.5, 0>
  229.     }
  230.     intersection{
  231.       cylinder{0*z,z,1.5}
  232.       cylinder{-z,2*z,0.5 inverse}
  233.       box{<-1.5,-1.5,-0.1>,<0,0,1.1>}
  234.       bounded_by{ box { <-1.5,-1.5,0>, <0, 0, 1> } }
  235.       translate <-0.5,1.5,0>
  236.     }
  237.     difference{
  238.       cylinder{0*z,z,1.5}
  239.       cylinder{-z,2*z,0.5}
  240.       plane{-x,0}
  241.       bounded_by{ box { <-1.5,-1.5,0>, <0, 1.5, 1> } }
  242.       translate<-0.5, 3.5, 0>
  243.     }
  244.     box{ <-0.502,4,0>,<0.502,5,1> }
  245.     box{ <-0.502,2,0>,<0.502,3,1> }
  246.     box{ <-0.502,0,0>,<0.502,1,1> }
  247.   }
  248.  
  249. #declare char_T =
  250.   union{
  251.     box{ <-0.5,0,0>,<0.5,4,1> }
  252.     box{ <-2,  4,0>,<  2,5,1> }
  253.   }
  254.  
  255. #declare char_U =
  256.   union {
  257.     object{char_J}
  258.     box{ <-2,1.998,0>,<-1,5,1> }
  259.   }
  260.  
  261. #declare char_V =
  262.   intersection {
  263.     box{<-2,0,-0.1>,<2,5,1.1>}
  264.     union {
  265.       box{<-0.5,-1,0>,<0.5,6,1> rotate    z*16.699 }
  266.       box{<-0.5,-1,0>,<0.5,6,1> rotate -z*16.699 }
  267.     }
  268.    bounded_by{ box { <-2,0,0>,<2,5,1> } }
  269.  }
  270.  
  271. #declare char_W =
  272.   union {
  273.     intersection{
  274.       union {
  275.     box{<-0.5,-5,0>,<0.5,0,1> rotate  z*26.5651}
  276.     box{<-0.5,-5,0>,<0.5,0,1> rotate -z*26.5651}
  277.     translate 3*y
  278.       }
  279.       box{<-1,0,-0.1>,<1,3,1.1>}
  280.       bounded_by{box{<-1,0,0>,<2,3,1>}}
  281.     }
  282.     box{ <-2,0,0>,<-1,5,1> }
  283.     box{ < 1,0,0>,< 2,5,1> }
  284.   }
  285.  
  286. #declare char_X =
  287.   intersection {
  288.     box{<-2,0,-0.1>,<2,5,1.1>}
  289.     union {
  290.       box{<-0.5,-3.5,0>,<0.5,3.5,1> rotate  z*30.9}
  291.       box{<-0.5,-3.5,0>,<0.5,3.5,1> rotate -z*30.9}
  292.       translate 2.5*y
  293.     }
  294.     bounded_by{ box { <-2,0,0>,<2,5,1> } }
  295.  }
  296.  
  297. #declare char_Y =
  298.   union {
  299.     intersection {
  300.       box{<-2,2,-0.1>,<2,5,1.1>}
  301.       union {
  302.     box{<-0.5,0,0>,<0.5,3.5,1> rotate  z*30.9}
  303.     box{<-0.5,0,0>,<0.5,3.5,1> rotate -z*30.9}
  304.     translate 2.5*y
  305.       }
  306.       bounded_by{ box { <-2,2,0>,<2,5,1> } }
  307.     }
  308.     box {<-0.5,0,0>,<0.5,3,1>}
  309.  }
  310.  
  311. #declare char_Z =
  312.   union {
  313.     intersection{
  314.       box{ <0,0,0>,<1,7,1> rotate z*-29.6749 translate -2*x}
  315.       box{<-2,0,-0.1>,<2,5,1.1>}
  316.       bounded_by{ box { <-2,0,0>,<2,5,1> } }
  317.     }
  318.     box{ <-2,4,0>,<1.2,5,1> }
  319.     box{ <-1.2,0,0>,<2,1,1> }
  320.   }
  321.  
  322. #declare char_Dash =
  323.    box{ <-2,2,0>,<2,3,1> }
  324.  
  325. #declare char_Plus =
  326.    union{
  327.      box{ <-2,2,0>,<2,3,1> }
  328.      box{ <-0.5,0.5,0>,<0.5,4.5,1> }
  329.    }
  330.  
  331. #declare char_0 = object{char_O}
  332.  
  333. #declare char_1 =
  334.    union{
  335.      object{char_I}
  336.      box{ <0,-1.25,0>,<1,0,1> rotate -z*45 translate <-0.5,5,0>}
  337.      box{ <-1,0,0>,<1,1,1> }
  338.    }
  339.  
  340. #declare char_2 =
  341.   union{
  342.     intersection{
  343.       cylinder{0*z,z,1.5}
  344.       cylinder{-z,2*z,0.5 inverse}
  345.       box{<-1.5,0,-0.1>,<0,1.5,1.1>}
  346.       bounded_by{ box { <-1.5,0,0>, <0, 1.5, 1> } }
  347.       translate<-0.5, 3.5, 0>
  348.     }
  349.     intersection{
  350.       cylinder{0*z,z,1.5}
  351.       cylinder{-z,2*z,0.5 inverse}
  352.       plane{-x,0 }
  353.       plane{-y,0 rotate -z*54 }
  354.       bounded_by{ box { <0,-1.5,0>, <1.5, 1.5, 1> } }
  355.       translate <0.5,3.5,0>
  356.     }
  357.     box{<-0.501,4,0>,<0.501,5,1>}
  358.     box{<-2,0,0>,<2,1,1>}
  359.     box{<-0.999,0.5,0>,<3.5,1.5,1> rotate -z*(90+54) translate <0.5,3.5,0>}
  360.   }
  361.  
  362. #declare char_3 =
  363.   union {
  364.     intersection{
  365.       cylinder{0*z,z,1.5}
  366.       cylinder{-z,2*z,0.