Loading
  • 21 Aug, 2019

  • By, Wikipedia

File:Polyhedron With No Vertex Visible From Center.png

This is the source code from which the image above is rendered. The permission given above applies to this source code as well.

// Persistence of Vision Ray Tracer Scene Description File
// File: 3d-art-gallery.pov
// Vers: 3.6
// Desc: A simple polyhedron with none of the vertices visible from the center.
// Date: 2007-11-06
// Auth: Ilmari Karonen

// parameters controlling the width and depth of hidden gaps
#declare a = (1 - 1/3);
#declare b = (1 + 2/3);

#if (b <= 1/a)
  #warning "B too small for a, vertices will be visible from center!"
#end

// textures for various surfaces
#declare T1 = texture {
  pigment { color rgb<1.0, 0.8, 0.8> }
  finish { ambient 0.3 diffuse 0.7 }
}
#declare T2 = texture {
  pigment { color rgb<1.0, 1.0, 0.8> }
  finish { ambient 0.3 diffuse 0.7 }
}
#declare T3 = texture {
  pigment { color rgb<0.8, 0.9, 1.0> }
  //pigment { color rgb 0 transmit 1 }
  finish { ambient 0.3 diffuse 0.7 }
}
#declare T4 = texture {
  pigment { color rgb<0.8, 0.8, 0.8> }
  finish { diffuse 0.3 specular 1.0 }
}

// the polyhedron itself
mesh { 
  // corner triangles
  triangle { < 1, a, b>, < a, b, 1>, < b, 1, a> texture { T1 } }
  triangle { < 1, a,-b>, < a, b,-1>, < b, 1,-a> texture { T1 } }
  triangle { < 1,-a, b>, < a,-b, 1>, < b,-1, a> texture { T1 } }
  triangle { < 1,-a,-b>, < a,-b,-1>, < b,-1,-a> texture { T1 } }
  triangle { <-1, a, b>, <-a, b, 1>, <-b, 1, a> texture { T1 } }
  triangle { <-1, a,-b>, <-a, b,-1>, <-b, 1,-a> texture { T1 } }
  triangle { <-1,-a, b>, <-a,-b, 1>, <-b,-1, a> texture { T1 } }
  triangle { <-1,-a,-b>, <-a,-b,-1>, <-b,-1,-a> texture { T1 } }

  // visible sides
  triangle { < 1, a, b>, < 1,-a, b>, < 1, a,-b> texture { T2 } } 
  triangle { < 1,-a,-b>, < 1,-a, b>, < 1, a,-b> texture { T2 } } 
  triangle { <-1, a, b>, <-1,-a, b>, <-1, a,-b> texture { T2 } } 
  triangle { <-1,-a,-b>, <-1,-a, b>, <-1, a,-b> texture { T2 } } 

  triangle { < a, b, 1>, <-a, b, 1>, < a,-b, 1> texture { T2 } } 
  triangle { <-a,-b, 1>, <-a, b, 1>, < a,-b, 1> texture { T2 } } 
  triangle { < a, b,-1>, <-a, b,-1>, < a,-b,-1> texture { T2 } } 
  triangle { <-a,-b,-1>, <-a, b,-1>, < a,-b,-1> texture { T2 } } 

  triangle { < b, 1, a>, < b, 1,-a>, <-b, 1, a> texture { T2 } } 
  triangle { <-b, 1,-a>, < b, 1,-a>, <-b, 1, a> texture { T2 } } 
  triangle { < b,-1, a>, < b,-1,-a>, <-b,-1, a> texture { T2 } } 
  triangle { <-b,-1,-a>, < b,-1,-a>, <-b,-1, a> texture { T2 } } 

  // hidden sides
  triangle { < 1, a, b>, < b, 1, a>, < 1, a,-b> texture { T3 } }
  triangle { < b, 1,-a>, < b, 1, a>, < 1, a,-b> texture { T3 } }
  triangle { < 1,-a, b>, < b,-1, a>, < 1,-a,-b> texture { T3 } }
  triangle { < b,-1,-a>, < b,-1, a>, < 1,-a,-b> texture { T3 } }
  triangle { <-1, a, b>, <-b, 1, a>, <-1, a,-b> texture { T3 } }
  triangle { <-b, 1,-a>, <-b, 1, a>, <-1, a,-b> texture { T3 } }
  triangle { <-1,-a, b>, <-b,-1, a>, <-1,-a,-b> texture { T3 } }
  triangle { <-b,-1,-a>, <-b,-1, a>, <-1,-a,-b> texture { T3 } }

  triangle { < a, b, 1>, < 1, a, b>, < a,-b, 1> texture { T3 } }
  triangle { < 1,-a, b>, < 1, a, b>, < a,-b, 1> texture { T3 } }
  triangle { <-a, b, 1>, <-1, a, b>, <-a,-b, 1> texture { T3 } }
  triangle { <-1,-a, b>, <-1, a, b>, <-a,-b, 1> texture { T3 } }
  triangle { < a, b,-1>, < 1, a,-b>, < a,-b,-1> texture { T3 } }
  triangle { < 1,-a,-b>, < 1, a,-b>, < a,-b,-1> texture { T3 } }
  triangle { <-a, b,-1>, <-1, a,-b>, <-a,-b,-1> texture { T3 } }
  triangle { <-1,-a,-b>, <-1, a,-b>, <-a,-b,-1> texture { T3 } }

  triangle { < b, 1, a>, < a, b, 1>, <-b, 1, a> texture { T3 } }
  triangle { <-a, b, 1>, < a, b, 1>, <-b, 1, a> texture { T3 } }
  triangle { < b, 1,-a>, < a, b,-1>, <-b, 1,-a> texture { T3 } }
  triangle { <-a, b,-1>, < a, b,-1>, <-b, 1,-a> texture { T3 } }
  triangle { < b,-1, a>, < a,-b, 1>, <-b,-1, a> texture { T3 } }
  triangle { <-a,-b, 1>, < a,-b, 1>, <-b,-1, a> texture { T3 } }
  triangle { < b,-1,-a>, < a,-b,-1>, <-b,-1,-a> texture { T3 } }
  triangle { <-a,-b,-1>, < a,-b,-1>, <-b,-1,-a> texture { T3 } }
}

// mark vertices with black spheres
sphere { < 1, a, b>, 0.03 texture { T4 } }
sphere { < a, b, 1>, 0.03 texture { T4 } }
sphere { < b, 1, a>, 0.03 texture { T4 } }
sphere { < 1, a,-b>, 0.03 texture { T4 } }
sphere { < a, b,-1>, 0.03 texture { T4 } }
sphere { < b, 1,-a>, 0.03 texture { T4 } }
sphere { < 1,-a, b>, 0.03 texture { T4 } }
sphere { < a,-b, 1>, 0.03 texture { T4 } }
sphere { < b,-1, a>, 0.03 texture { T4 } }
sphere { < 1,-a,-b>, 0.03 texture { T4 } }
sphere { < a,-b,-1>, 0.03 texture { T4 } }
sphere { < b,-1,-a>, 0.03 texture { T4 } }
sphere { <-1, a, b>, 0.03 texture { T4 } }
sphere { <-a, b, 1>, 0.03 texture { T4 } }
sphere { <-b, 1, a>, 0.03 texture { T4 } }
sphere { <-1, a,-b>, 0.03 texture { T4 } }
sphere { <-a, b,-1>, 0.03 texture { T4 } }
sphere { <-b, 1,-a>, 0.03 texture { T4 } }
sphere { <-1,-a, b>, 0.03 texture { T4 } }
sphere { <-a,-b, 1>, 0.03 texture { T4 } }
sphere { <-b,-1, a>, 0.03 texture { T4 } }
sphere { <-1,-a,-b>, 0.03 texture { T4 } }
sphere { <-a,-b,-1>, 0.03 texture { T4 } }
sphere { <-b,-1,-a>, 0.03 texture { T4 } }

sky_sphere {
  pigment { color rgb 1 }
}

// outside lights
light_source { <50, 80, 0> color rgb 0.2 area_light 5*x 5*y 9, 9 adaptive 0 jitter circular orient parallel point_at <0, 0, 0> rotate  15*y }
light_source { <50,-10, 0> color rgb 0.1 area_light 5*x 5*y 9, 9 adaptive 0 jitter circular orient parallel point_at <0, 0, 0> rotate  45*y }
light_source { <50, 20, 0> color rgb 0.3 area_light 5*x 5*y 9, 9 adaptive 1 jitter circular orient parallel point_at <0, 0, 0> rotate  75*y }
light_source { <50, 80, 0> color rgb 0.2 area_light 5*x 5*y 9, 9 adaptive 0 jitter circular orient parallel point_at <0, 0, 0> rotate 135*y }
light_source { <50,-10, 0> color rgb 0.1 area_light 5*x 5*y 9, 9 adaptive 0 jitter circular orient parallel point_at <0, 0, 0> rotate 165*y }
light_source { <50, 20, 0> color rgb 0.3 area_light 5*x 5*y 9, 9 adaptive 1 jitter circular orient parallel point_at <0, 0, 0> rotate 195*y }
light_source { <50, 80, 0> color rgb 0.2 area_light 5*x 5*y 9, 9 adaptive 0 jitter circular orient parallel point_at <0, 0, 0> rotate 255*y }
light_source { <50,-10, 0> color rgb 0.1 area_light 5*x 5*y 9, 9 adaptive 0 jitter circular orient parallel point_at <0, 0, 0> rotate 285*y }
light_source { <50, 20, 0> color rgb 0.3 area_light 5*x 5*y 9, 9 adaptive 1 jitter circular orient parallel point_at <0, 0, 0> rotate 315*y }

// inside lights
light_source { <0, 0, 0> color rgb 0.5 area_light 0.6*x 0.6*z 9, 9 adaptive 1 jitter circular orient }
light_source { <0, 0, 0> color rgb 0.5 area_light 0.4*x 0.4*z 9, 9 adaptive 1 jitter circular orient }

// cameras
camera { location <8.0, 5.0, -5.0> angle 30 look_at <0.0, 0.0,  0.0> right x*image_width/image_height }  // outside
//camera { panoramic location <0,0,0> look_at <1,0,1> angle 180 } // inside, 180 degree panorama
//camera { location <0,0,0> look_at <1,1,1> angle 70 }  // inside, looking at corner

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

6 November 2007

image/png

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current03:54, 6 November 2007Thumbnail for version as of 03:54, 6 November 20071,280 × 1,024 (115 KB)Ilmari Karonen{{Information |Description=This simple, non-convex polyhedron is constructed so that none of its 12 vertices, marked with black balls, can be seen from a region around its center. This counterexample shows that placing observers at each

Global file usage

The following other wikis use this file: