###### Descriptions and Examples for the POV-Ray Raytracerby Friedrich A. Lohmüller     POV-Ray Examples - How To Make Objects for POV-Ray
Italiano
Français
Deutsch

Home
- POV-Ray Tutorial

- POV-Ray Examples
Index of Content
- Geometry
- Pawn
- Wireframe Cube
- Octagon
- Egg Shape
- Star
- Optical Lens
- Chessboard
- Regular Tetrahedron
- Penrose Triangle
- Yin & Yang
- Fishblob
- Threefold
- Trefoil
- Architecture

- Engineering

# Penrose Triangle

###### The construction of an "impossible triangle" - a Penrose triangle or Penrose tribar. Know from Oscar Reutersvärd (Swedish artist), Roger Penrose (British mathematician), M.C. Escher's lithograph Waterfall and many others. An example for the using of the "orthographic camera" for isometric projection. Objects:   "box". Methods: "#declare","union", "intersection". Click here for an example!

The effect of the Penrose Triangle is based on the Isometric Projection.
To realize this kind of projection with POV-Ray, we need to use the orthographic camera with a point of view diagonal to the axes:
 ```camera{ //--------------------------  orthographic location < 10, 10,-10> right x*image_width/image_height angle 5 look_at <0,0,0> } //-------------------------------- ```
A cube in isometric projection.

The Construction of the Penrose Triangle: There are two ways to make an impossible triangle, see the animations in the following images.
Here how to make it by cutting with planes (2nd way):

 ```//----------------------------------- #declare Length = 1; #declare Diameter = 0.15; // internals: #declare R = Diameter/2; #declare L = Length - 2*R; //----------------------------------- #declare Triangle_Texture = texture{ pigment{ color rgb<1,.9,.3>} finish { phong 1 } } // end of texture //----------------------------------- #declare Element = box { <-R,-R,-R>,< L+R, R, R> texture {Triangle_Texture} no_shadow } // end of box //----------------------------------- #declare Element_Cut = intersection{ object{ Element } plane{ <1,0,0>,0 rotate<0,45,0> translate texture {Triangle_Texture} } } // end difference //----------------------------------- #declare Penrose_Triangle = union{ object{ Element_Cut rotate<0,-90, 0>} object{ Element rotate<0, 0,90>} object{ Element rotate<0, 0, 0> translate<0,L,0>} object{ Element_Cut rotate<0, 90, 0> translate} no_shadow } // end of union //----------------- ```
Construction of a Penrose Triangle.
Construction of a Penrose Triangle.
##### Scene description for POV-Ray: "Penrose_Triangle_1.pov" or "Penrose_Triangle_1.txt"
top
 © Friedrich A. Lohmüller, 2009 http://www.f-lohmueller.de